// export Cargo , xy ; starting begin PrepareRussians ;
   0: CALL 343 0 0
// InGameOn ;
   4: CALL_OW 8
// Cargo = 0 ;
   8: LD_ADDR_EXP 1
  12: PUSH
  13: LD_INT 0
  15: ST_TO_ADDR
// end ;
  16: END
// every 0 0$02 do var baza ;
  17: GO 19
  19: DISABLE
  20: LD_INT 0
  22: PPUSH
// begin baza = FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] ] ) ;
  23: LD_ADDR_VAR 0 1
  27: PUSH
  28: LD_INT 22
  30: PUSH
  31: LD_INT 1
  33: PUSH
  34: EMPTY
  35: LIST
  36: LIST
  37: PUSH
  38: LD_INT 21
  40: PUSH
  41: LD_INT 1
  43: PUSH
  44: EMPTY
  45: LIST
  46: LIST
  47: PUSH
  48: EMPTY
  49: LIST
  50: LIST
  51: PPUSH
  52: CALL_OW 69
  56: ST_TO_ADDR
// CenterOnUnits ( Nefarem ) ;
  57: LD_EXP 3
  61: PPUSH
  62: CALL_OW 85
// SayRadio ( Nefarem , A1 ) ;
  66: LD_EXP 3
  70: PPUSH
  71: LD_STRING A1
  73: PPUSH
  74: CALL_OW 94
// SayRadio ( baza [ 1 ] , A2 ) ;
  78: LD_VAR 0 1
  82: PUSH
  83: LD_INT 1
  85: ARRAY
  86: PPUSH
  87: LD_STRING A2
  89: PPUSH
  90: CALL_OW 94
// SayRadio ( Nefarem , A3 ) ;
  94: LD_EXP 3
  98: PPUSH
  99: LD_STRING A3
 101: PPUSH
 102: CALL_OW 94
// SayRadio ( baza [ 1 ] , A4 ) ;
 106: LD_VAR 0 1
 110: PUSH
 111: LD_INT 1
 113: ARRAY
 114: PPUSH
 115: LD_STRING A4
 117: PPUSH
 118: CALL_OW 94
// SayRadio ( Nefarem , A5 ) ;
 122: LD_EXP 3
 126: PPUSH
 127: LD_STRING A5
 129: PPUSH
 130: CALL_OW 94
// SayRadio ( baza [ 1 ] , A6 ) ;
 134: LD_VAR 0 1
 138: PUSH
 139: LD_INT 1
 141: ARRAY
 142: PPUSH
 143: LD_STRING A6
 145: PPUSH
 146: CALL_OW 94
// SayRadio ( Nefarem , A7 ) ;
 150: LD_EXP 3
 154: PPUSH
 155: LD_STRING A7
 157: PPUSH
 158: CALL_OW 94
// InGameOff ;
 162: CALL_OW 9
// ChangeMissionObjectives ( M1 ) ;
 166: LD_STRING M1
 168: PPUSH
 169: CALL_OW 337
// SaveForQuickRestart ;
 173: CALL_OW 22
// ProductionVehicles ;
 177: CALL 6418 0 0
// wait ( 1 1$30 ) ;
 181: LD_INT 3150
 183: PPUSH
 184: CALL_OW 67
// xy = 1 ;
 188: LD_ADDR_EXP 2
 192: PUSH
 193: LD_INT 1
 195: ST_TO_ADDR
// end ;
 196: PPOPN 1
 198: END
// every 0 0$01 do var veh , i ;
 199: GO 201
 201: DISABLE
 202: LD_INT 0
 204: PPUSH
 205: PPUSH
// begin veh = FilterUnitsInArea ( AreaEscape , [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_weapon , us_cargo_bay ] ] ) ;
 206: LD_ADDR_VAR 0 1
 210: PUSH
 211: LD_INT 16
 213: PPUSH
 214: LD_INT 22
 216: PUSH
 217: LD_INT 4
 219: PUSH
 220: EMPTY
 221: LIST
 222: LIST
 223: PUSH
 224: LD_INT 21
 226: PUSH
 227: LD_INT 2
 229: PUSH
 230: EMPTY
 231: LIST
 232: LIST
 233: PUSH
 234: LD_INT 33
 236: PUSH
 237: LD_INT 3
 239: PUSH
 240: EMPTY
 241: LIST
 242: LIST
 243: PUSH
 244: LD_INT 34
 246: PUSH
 247: LD_INT 12
 249: PUSH
 250: EMPTY
 251: LIST
 252: LIST
 253: PUSH
 254: EMPTY
 255: LIST
 256: LIST
 257: LIST
 258: LIST
 259: PPUSH
 260: CALL_OW 70
 264: ST_TO_ADDR
// enable ;
 265: ENABLE
// for i in veh do
 266: LD_ADDR_VAR 0 2
 270: PUSH
 271: LD_VAR 0 1
 275: PUSH
 276: FOR_IN
 277: IFFALSE 304
// begin RemoveUnit ( i ) ;
 279: LD_VAR 0 2
 283: PPUSH
 284: CALL_OW 64
// Cargo = Cargo + 1 ;
 288: LD_ADDR_EXP 1
 292: PUSH
 293: LD_EXP 1
 297: PUSH
 298: LD_INT 1
 300: PLUS
 301: ST_TO_ADDR
// end ;
 302: GO 276
 304: POP
 305: POP
// end ;
 306: PPOPN 2
 308: END
// every 0 0$01 trigger Cargo = 2 do
 309: LD_EXP 1
 313: PUSH
 314: LD_INT 2
 316: EQUAL
 317: IFFALSE 342
 319: GO 321
 321: DISABLE
// begin case query ( Part1 ) of 1 :
 322: LD_STRING Part1
 324: PPUSH
 325: CALL_OW 97
 329: PUSH
 330: LD_INT 1
 332: DOUBLE
 333: EQUAL
 334: IFTRUE 338
 336: GO 341
 338: POP
// begin end ; end ;
 339: GO 342
 341: POP
// end ; end_of_file
 342: END
// export function PrepareRussians ; var Ru1_turrets , Am1_turrets , i , un , l , SolLevel , EngLevel , MechLevel , DocLevel , Num , MechNum ; begin
 343: LD_INT 0
 345: PPUSH
 346: PPUSH
 347: PPUSH
 348: PPUSH
 349: PPUSH
 350: PPUSH
 351: PPUSH
 352: PPUSH
 353: PPUSH
 354: PPUSH
 355: PPUSH
 356: PPUSH
// MechNum = [ 1 , 2 , 2 ] [ Difficulty ] ;
 357: LD_ADDR_VAR 0 12
 361: PUSH
 362: LD_INT 1
 364: PUSH
 365: LD_INT 2
 367: PUSH
 368: LD_INT 2
 370: PUSH
 371: EMPTY
 372: LIST
 373: LIST
 374: LIST
 375: PUSH
 376: LD_OWVAR 67
 380: ARRAY
 381: ST_TO_ADDR
// Num = [ 3 , 4 , 4 ] [ Difficulty ] ;
 382: LD_ADDR_VAR 0 11
 386: PUSH
 387: LD_INT 3
 389: PUSH
 390: LD_INT 4
 392: PUSH
 393: LD_INT 4
 395: PUSH
 396: EMPTY
 397: LIST
 398: LIST
 399: LIST
 400: PUSH
 401: LD_OWVAR 67
 405: ARRAY
 406: ST_TO_ADDR
// SolLevel := [ 6 , 6 , 7 ] [ Difficulty ] ;
 407: LD_ADDR_VAR 0 7
 411: PUSH
 412: LD_INT 6
 414: PUSH
 415: LD_INT 6
 417: PUSH
 418: LD_INT 7
 420: PUSH
 421: EMPTY
 422: LIST
 423: LIST
 424: LIST
 425: PUSH
 426: LD_OWVAR 67
 430: ARRAY
 431: ST_TO_ADDR
// EngLevel := [ 5 , 6 , 6 ] [ Difficulty ] ;
 432: LD_ADDR_VAR 0 8
 436: PUSH
 437: LD_INT 5
 439: PUSH
 440: LD_INT 6
 442: PUSH
 443: LD_INT 6
 445: PUSH
 446: EMPTY
 447: LIST
 448: LIST
 449: LIST
 450: PUSH
 451: LD_OWVAR 67
 455: ARRAY
 456: ST_TO_ADDR
// MechLevel := [ 5 , 7 , 7 ] [ Difficulty ] ;
 457: LD_ADDR_VAR 0 9
 461: PUSH
 462: LD_INT 5
 464: PUSH
 465: LD_INT 7
 467: PUSH
 468: LD_INT 7
 470: PUSH
 471: EMPTY
 472: LIST
 473: LIST
 474: LIST
 475: PUSH
 476: LD_OWVAR 67
 480: ARRAY
 481: ST_TO_ADDR
// DocLevel := [ 5 , 5 , 6 ] [ Difficulty ] ;
 482: LD_ADDR_VAR 0 10
 486: PUSH
 487: LD_INT 5
 489: PUSH
 490: LD_INT 5
 492: PUSH
 493: LD_INT 6
 495: PUSH
 496: EMPTY
 497: LIST
 498: LIST
 499: LIST
 500: PUSH
 501: LD_OWVAR 67
 505: ARRAY
 506: ST_TO_ADDR
// Ru1_turrets := FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
 507: LD_ADDR_VAR 0 2
 511: PUSH
 512: LD_INT 22
 514: PUSH
 515: LD_INT 3
 517: PUSH
 518: EMPTY
 519: LIST
 520: LIST
 521: PUSH
 522: LD_INT 30
 524: PUSH
 525: LD_INT 32
 527: PUSH
 528: EMPTY
 529: LIST
 530: LIST
 531: PUSH
 532: EMPTY
 533: LIST
 534: LIST
 535: PPUSH
 536: CALL_OW 69
 540: PUSH
 541: LD_INT 22
 543: PUSH
 544: LD_INT 3
 546: PUSH
 547: EMPTY
 548: LIST
 549: LIST
 550: PUSH
 551: LD_INT 30
 553: PUSH
 554: LD_INT 31
 556: PUSH
 557: EMPTY
 558: LIST
 559: LIST
 560: PUSH
 561: EMPTY
 562: LIST
 563: LIST
 564: PPUSH
 565: CALL_OW 69
 569: ADD
 570: ST_TO_ADDR
// hc_importance = 0 ;
 571: LD_ADDR_OWVAR 32
 575: PUSH
 576: LD_INT 0
 578: ST_TO_ADDR
// for i in Ru1_Turrets do
 579: LD_ADDR_VAR 0 4
 583: PUSH
 584: LD_VAR 0 2
 588: PUSH
 589: FOR_IN
 590: IFFALSE 769
// begin if IsInUnit ( i ) = 0 then
 592: LD_VAR 0 4
 596: PPUSH
 597: CALL_OW 310
 601: PUSH
 602: LD_INT 0
 604: EQUAL
 605: IFFALSE 767
// begin uc_side = 3 ;
 607: LD_ADDR_OWVAR 20
 611: PUSH
 612: LD_INT 3
 614: ST_TO_ADDR
// uc_nation = 3 ;
 615: LD_ADDR_OWVAR 21
 619: PUSH
 620: LD_INT 3
 622: ST_TO_ADDR
// hc_gallery =  ;
 623: LD_ADDR_OWVAR 33
 627: PUSH
 628: LD_STRING 
 630: ST_TO_ADDR
// hc_name =  ;
 631: LD_ADDR_OWVAR 26
 635: PUSH
 636: LD_STRING 
 638: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 639: LD_ADDR_OWVAR 29
 643: PUSH
 644: LD_INT 9
 646: PPUSH
 647: LD_INT 11
 649: PPUSH
 650: CALL_OW 12
 654: PUSH
 655: LD_INT 10
 657: PPUSH
 658: LD_INT 12
 660: PPUSH
 661: CALL_OW 12
 665: PUSH
 666: EMPTY
 667: LIST
 668: LIST
 669: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
 670: LD_ADDR_OWVAR 31
 674: PUSH
 675: LD_VAR 0 7
 679: PUSH
 680: LD_INT 1
 682: PPUSH
 683: LD_INT 4
 685: PPUSH
 686: CALL_OW 12
 690: PUSH
 691: LD_INT 2
 693: PPUSH
 694: LD_INT 4
 696: PPUSH
 697: CALL_OW 12
 701: PUSH
 702: LD_INT 0
 704: PPUSH
 705: LD_INT 4
 707: PPUSH
 708: CALL_OW 12
 712: PUSH
 713: EMPTY
 714: LIST
 715: LIST
 716: LIST
 717: LIST
 718: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 719: LD_ADDR_OWVAR 27
 723: PUSH
 724: LD_INT 1
 726: PPUSH
 727: LD_INT 2
 729: PPUSH
 730: CALL_OW 12
 734: ST_TO_ADDR
// hc_class = 1 ;
 735: LD_ADDR_OWVAR 28
 739: PUSH
 740: LD_INT 1
 742: ST_TO_ADDR
// un := CreateHuman ;
 743: LD_ADDR_VAR 0 5
 747: PUSH
 748: CALL_OW 44
 752: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 753: LD_VAR 0 5
 757: PPUSH
 758: LD_VAR 0 4
 762: PPUSH
 763: CALL_OW 52
// end ; end ;
 767: GO 589
 769: POP
 770: POP
// Am1_turrets := FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_breastwork ] ] ) ;
 771: LD_ADDR_VAR 0 3
 775: PUSH
 776: LD_INT 22
 778: PUSH
 779: LD_INT 1
 781: PUSH
 782: EMPTY
 783: LIST
 784: LIST
 785: PUSH
 786: LD_INT 30
 788: PUSH
 789: LD_INT 32
 791: PUSH
 792: EMPTY
 793: LIST
 794: LIST
 795: PUSH
 796: EMPTY
 797: LIST
 798: LIST
 799: PPUSH
 800: CALL_OW 69
 804: PUSH
 805: LD_INT 22
 807: PUSH
 808: LD_INT 1
 810: PUSH
 811: EMPTY
 812: LIST
 813: LIST
 814: PUSH
 815: LD_INT 30
 817: PUSH
 818: LD_INT 31
 820: PUSH
 821: EMPTY
 822: LIST
 823: LIST
 824: PUSH
 825: EMPTY
 826: LIST
 827: LIST
 828: PPUSH
 829: CALL_OW 69
 833: ADD
 834: ST_TO_ADDR
// for i in Am1_turrets do
 835: LD_ADDR_VAR 0 4
 839: PUSH
 840: LD_VAR 0 3
 844: PUSH
 845: FOR_IN
 846: IFFALSE 1035
// begin if IsInUnit ( i ) = 0 then
 848: LD_VAR 0 4
 852: PPUSH
 853: CALL_OW 310
 857: PUSH
 858: LD_INT 0
 860: EQUAL
 861: IFFALSE 1033
// begin uc_side = 1 ;
 863: LD_ADDR_OWVAR 20
 867: PUSH
 868: LD_INT 1
 870: ST_TO_ADDR
// uc_nation = 1 ;
 871: LD_ADDR_OWVAR 21
 875: PUSH
 876: LD_INT 1
 878: ST_TO_ADDR
// hc_gallery =  ;
 879: LD_ADDR_OWVAR 33
 883: PUSH
 884: LD_STRING 
 886: ST_TO_ADDR
// hc_name =  ;
 887: LD_ADDR_OWVAR 26
 891: PUSH
 892: LD_STRING 
 894: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 895: LD_ADDR_OWVAR 29
 899: PUSH
 900: LD_INT 9
 902: PPUSH
 903: LD_INT 11
 905: PPUSH
 906: CALL_OW 12
 910: PUSH
 911: LD_INT 10
 913: PPUSH
 914: LD_INT 12
 916: PPUSH
 917: CALL_OW 12
 921: PUSH
 922: EMPTY
 923: LIST
 924: LIST
 925: ST_TO_ADDR
// hc_skills = [ 6 - Rand ( 0 , 2 ) , Rand ( 0 , 3 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
 926: LD_ADDR_OWVAR 31
 930: PUSH
 931: LD_INT 6
 933: PUSH
 934: LD_INT 0
 936: PPUSH
 937: LD_INT 2
 939: PPUSH
 940: CALL_OW 12
 944: MINUS
 945: PUSH
 946: LD_INT 0
 948: PPUSH
 949: LD_INT 3
 951: PPUSH
 952: CALL_OW 12
 956: PUSH
 957: LD_INT 0
 959: PPUSH
 960: LD_INT 3
 962: PPUSH
 963: CALL_OW 12
 967: PUSH
 968: LD_INT 0
 970: PPUSH
 971: LD_INT 2
 973: PPUSH
 974: CALL_OW 12
 978: PUSH
 979: EMPTY
 980: LIST
 981: LIST
 982: LIST
 983: LIST
 984: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 985: LD_ADDR_OWVAR 27
 989: PUSH
 990: LD_INT 1
 992: PPUSH
 993: LD_INT 2
 995: PPUSH
 996: CALL_OW 12
1000: ST_TO_ADDR
// hc_class = 1 ;
1001: LD_ADDR_OWVAR 28
1005: PUSH
1006: LD_INT 1
1008: ST_TO_ADDR
// un := CreateHuman ;
1009: LD_ADDR_VAR 0 5
1013: PUSH
1014: CALL_OW 44
1018: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1019: LD_VAR 0 5
1023: PPUSH
1024: LD_VAR 0 4
1028: PPUSH
1029: CALL_OW 52
// end ; end ;
1033: GO 845
1035: POP
1036: POP
// for i in depotUS1 do
1037: LD_ADDR_VAR 0 4
1041: PUSH
1042: LD_INT 532
1044: PUSH
1045: FOR_IN
1046: IFFALSE 1253
// begin l = 0 ;
1048: LD_ADDR_VAR 0 6
1052: PUSH
1053: LD_INT 0
1055: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1056: LD_VAR 0 4
1060: PPUSH
1061: CALL_OW 310
1065: PUSH
1066: LD_INT 0
1068: EQUAL
1069: IFFALSE 1251
// begin repeat begin uc_side = 1 ;
1071: LD_ADDR_OWVAR 20
1075: PUSH
1076: LD_INT 1
1078: ST_TO_ADDR
// uc_nation = 1 ;
1079: LD_ADDR_OWVAR 21
1083: PUSH
1084: LD_INT 1
1086: ST_TO_ADDR
// hc_gallery =  ;
1087: LD_ADDR_OWVAR 33
1091: PUSH
1092: LD_STRING 
1094: ST_TO_ADDR
// hc_name =  ;
1095: LD_ADDR_OWVAR 26
1099: PUSH
1100: LD_STRING 
1102: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1103: LD_ADDR_OWVAR 29
1107: PUSH
1108: LD_INT 9
1110: PPUSH
1111: LD_INT 11
1113: PPUSH
1114: CALL_OW 12
1118: PUSH
1119: LD_INT 10
1121: PPUSH
1122: LD_INT 12
1124: PPUSH
1125: CALL_OW 12
1129: PUSH
1130: EMPTY
1131: LIST
1132: LIST
1133: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 5 ) , 8 , Rand ( 2 , 6 ) , Rand ( 0 , 6 ) ] ;
1134: LD_ADDR_OWVAR 31
1138: PUSH
1139: LD_INT 1
1141: PPUSH
1142: LD_INT 5
1144: PPUSH
1145: CALL_OW 12
1149: PUSH
1150: LD_INT 8
1152: PUSH
1153: LD_INT 2
1155: PPUSH
1156: LD_INT 6
1158: PPUSH
1159: CALL_OW 12
1163: PUSH
1164: LD_INT 0
1166: PPUSH
1167: LD_INT 6
1169: PPUSH
1170: CALL_OW 12
1174: PUSH
1175: EMPTY
1176: LIST
1177: LIST
1178: LIST
1179: LIST
1180: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1181: LD_ADDR_OWVAR 27
1185: PUSH
1186: LD_INT 1
1188: PPUSH
1189: LD_INT 2
1191: PPUSH
1192: CALL_OW 12
1196: ST_TO_ADDR
// hc_class = 2 ;
1197: LD_ADDR_OWVAR 28
1201: PUSH
1202: LD_INT 2
1204: ST_TO_ADDR
// un = CreateHuman ;
1205: LD_ADDR_VAR 0 5
1209: PUSH
1210: CALL_OW 44
1214: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotUS1 ) ;
1215: LD_VAR 0 5
1219: PPUSH
1220: LD_INT 532
1222: PPUSH
1223: CALL_OW 52
// l = l + 1 ;
1227: LD_ADDR_VAR 0 6
1231: PUSH
1232: LD_VAR 0 6
1236: PUSH
1237: LD_INT 1
1239: PLUS
1240: ST_TO_ADDR
// end until l = 2 ;
1241: LD_VAR 0 6
1245: PUSH
1246: LD_INT 2
1248: EQUAL
1249: IFFALSE 1071
// end ; end ;
1251: GO 1045
1253: POP
1254: POP
// for i in depotRU1 do
1255: LD_ADDR_VAR 0 4
1259: PUSH
1260: LD_INT 238
1262: PUSH
1263: FOR_IN
1264: IFFALSE 1473
// begin l = 0 ;
1266: LD_ADDR_VAR 0 6
1270: PUSH
1271: LD_INT 0
1273: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1274: LD_VAR 0 4
1278: PPUSH
1279: CALL_OW 310
1283: PUSH
1284: LD_INT 0
1286: EQUAL
1287: IFFALSE 1471
// begin repeat begin uc_side = 3 ;
1289: LD_ADDR_OWVAR 20
1293: PUSH
1294: LD_INT 3
1296: ST_TO_ADDR
// uc_nation = 3 ;
1297: LD_ADDR_OWVAR 21
1301: PUSH
1302: LD_INT 3
1304: ST_TO_ADDR
// hc_gallery =  ;
1305: LD_ADDR_OWVAR 33
1309: PUSH
1310: LD_STRING 
1312: ST_TO_ADDR
// hc_name =  ;
1313: LD_ADDR_OWVAR 26
1317: PUSH
1318: LD_STRING 
1320: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1321: LD_ADDR_OWVAR 29
1325: PUSH
1326: LD_INT 9
1328: PPUSH
1329: LD_INT 11
1331: PPUSH
1332: CALL_OW 12
1336: PUSH
1337: LD_INT 10
1339: PPUSH
1340: LD_INT 12
1342: PPUSH
1343: CALL_OW 12
1347: PUSH
1348: EMPTY
1349: LIST
1350: LIST
1351: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1352: LD_ADDR_OWVAR 31
1356: PUSH
1357: LD_INT 1
1359: PPUSH
1360: LD_INT 3
1362: PPUSH
1363: CALL_OW 12
1367: PUSH
1368: LD_VAR 0 8
1372: PUSH
1373: LD_INT 2
1375: PPUSH
1376: LD_INT 4
1378: PPUSH
1379: CALL_OW 12
1383: PUSH
1384: LD_INT 0
1386: PPUSH
1387: LD_INT 3
1389: PPUSH
1390: CALL_OW 12
1394: PUSH
1395: EMPTY
1396: LIST
1397: LIST
1398: LIST
1399: LIST
1400: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1401: LD_ADDR_OWVAR 27
1405: PUSH
1406: LD_INT 1
1408: PPUSH
1409: LD_INT 2
1411: PPUSH
1412: CALL_OW 12
1416: ST_TO_ADDR
// hc_class = 2 ;
1417: LD_ADDR_OWVAR 28
1421: PUSH
1422: LD_INT 2
1424: ST_TO_ADDR
// un = CreateHuman ;
1425: LD_ADDR_VAR 0 5
1429: PUSH
1430: CALL_OW 44
1434: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU1 ) ;
1435: LD_VAR 0 5
1439: PPUSH
1440: LD_INT 238
1442: PPUSH
1443: CALL_OW 52
// l = l + 1 ;
1447: LD_ADDR_VAR 0 6
1451: PUSH
1452: LD_VAR 0 6
1456: PUSH
1457: LD_INT 1
1459: PLUS
1460: ST_TO_ADDR
// end until l = 2 ;
1461: LD_VAR 0 6
1465: PUSH
1466: LD_INT 2
1468: EQUAL
1469: IFFALSE 1289
// end ; end ;
1471: GO 1263
1473: POP
1474: POP
// for i in depotRU2 do
1475: LD_ADDR_VAR 0 4
1479: PUSH
1480: LD_INT 2
1482: PUSH
1483: FOR_IN
1484: IFFALSE 1693
// begin l = 0 ;
1486: LD_ADDR_VAR 0 6
1490: PUSH
1491: LD_INT 0
1493: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1494: LD_VAR 0 4
1498: PPUSH
1499: CALL_OW 310
1503: PUSH
1504: LD_INT 0
1506: EQUAL
1507: IFFALSE 1691
// begin repeat begin uc_side = 3 ;
1509: LD_ADDR_OWVAR 20
1513: PUSH
1514: LD_INT 3
1516: ST_TO_ADDR
// uc_nation = 3 ;
1517: LD_ADDR_OWVAR 21
1521: PUSH
1522: LD_INT 3
1524: ST_TO_ADDR
// hc_gallery =  ;
1525: LD_ADDR_OWVAR 33
1529: PUSH
1530: LD_STRING 
1532: ST_TO_ADDR
// hc_name =  ;
1533: LD_ADDR_OWVAR 26
1537: PUSH
1538: LD_STRING 
1540: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1541: LD_ADDR_OWVAR 29
1545: PUSH
1546: LD_INT 9
1548: PPUSH
1549: LD_INT 11
1551: PPUSH
1552: CALL_OW 12
1556: PUSH
1557: LD_INT 10
1559: PPUSH
1560: LD_INT 12
1562: PPUSH
1563: CALL_OW 12
1567: PUSH
1568: EMPTY
1569: LIST
1570: LIST
1571: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1572: LD_ADDR_OWVAR 31
1576: PUSH
1577: LD_INT 1
1579: PPUSH
1580: LD_INT 3
1582: PPUSH
1583: CALL_OW 12
1587: PUSH
1588: LD_VAR 0 8
1592: PUSH
1593: LD_INT 2
1595: PPUSH
1596: LD_INT 4
1598: PPUSH
1599: CALL_OW 12
1603: PUSH
1604: LD_INT 0
1606: PPUSH
1607: LD_INT 3
1609: PPUSH
1610: CALL_OW 12
1614: PUSH
1615: EMPTY
1616: LIST
1617: LIST
1618: LIST
1619: LIST
1620: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1621: LD_ADDR_OWVAR 27
1625: PUSH
1626: LD_INT 1
1628: PPUSH
1629: LD_INT 2
1631: PPUSH
1632: CALL_OW 12
1636: ST_TO_ADDR
// hc_class = 2 ;
1637: LD_ADDR_OWVAR 28
1641: PUSH
1642: LD_INT 2
1644: ST_TO_ADDR
// un = CreateHuman ;
1645: LD_ADDR_VAR 0 5
1649: PUSH
1650: CALL_OW 44
1654: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU2 ) ;
1655: LD_VAR 0 5
1659: PPUSH
1660: LD_INT 2
1662: PPUSH
1663: CALL_OW 52
// l = l + 1 ;
1667: LD_ADDR_VAR 0 6
1671: PUSH
1672: LD_VAR 0 6
1676: PUSH
1677: LD_INT 1
1679: PLUS
1680: ST_TO_ADDR
// end until l = 2 ;
1681: LD_VAR 0 6
1685: PUSH
1686: LD_INT 2
1688: EQUAL
1689: IFFALSE 1509
// end ; end ;
1691: GO 1483
1693: POP
1694: POP
// for i in depotRU3 do
1695: LD_ADDR_VAR 0 4
1699: PUSH
1700: LD_INT 138
1702: PUSH
1703: FOR_IN
1704: IFFALSE 1913
// begin l = 0 ;
1706: LD_ADDR_VAR 0 6
1710: PUSH
1711: LD_INT 0
1713: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1714: LD_VAR 0 4
1718: PPUSH
1719: CALL_OW 310
1723: PUSH
1724: LD_INT 0
1726: EQUAL
1727: IFFALSE 1911
// begin repeat begin uc_side = 3 ;
1729: LD_ADDR_OWVAR 20
1733: PUSH
1734: LD_INT 3
1736: ST_TO_ADDR
// uc_nation = 3 ;
1737: LD_ADDR_OWVAR 21
1741: PUSH
1742: LD_INT 3
1744: ST_TO_ADDR
// hc_gallery =  ;
1745: LD_ADDR_OWVAR 33
1749: PUSH
1750: LD_STRING 
1752: ST_TO_ADDR
// hc_name =  ;
1753: LD_ADDR_OWVAR 26
1757: PUSH
1758: LD_STRING 
1760: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1761: LD_ADDR_OWVAR 29
1765: PUSH
1766: LD_INT 9
1768: PPUSH
1769: LD_INT 11
1771: PPUSH
1772: CALL_OW 12
1776: PUSH
1777: LD_INT 10
1779: PPUSH
1780: LD_INT 12
1782: PPUSH
1783: CALL_OW 12
1787: PUSH
1788: EMPTY
1789: LIST
1790: LIST
1791: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1792: LD_ADDR_OWVAR 31
1796: PUSH
1797: LD_INT 1
1799: PPUSH
1800: LD_INT 3
1802: PPUSH
1803: CALL_OW 12
1807: PUSH
1808: LD_VAR 0 8
1812: PUSH
1813: LD_INT 2
1815: PPUSH
1816: LD_INT 4
1818: PPUSH
1819: CALL_OW 12
1823: PUSH
1824: LD_INT 0
1826: PPUSH
1827: LD_INT 3
1829: PPUSH
1830: CALL_OW 12
1834: PUSH
1835: EMPTY
1836: LIST
1837: LIST
1838: LIST
1839: LIST
1840: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1841: LD_ADDR_OWVAR 27
1845: PUSH
1846: LD_INT 1
1848: PPUSH
1849: LD_INT 2
1851: PPUSH
1852: CALL_OW 12
1856: ST_TO_ADDR
// hc_class = 2 ;
1857: LD_ADDR_OWVAR 28
1861: PUSH
1862: LD_INT 2
1864: ST_TO_ADDR
// un = CreateHuman ;
1865: LD_ADDR_VAR 0 5
1869: PUSH
1870: CALL_OW 44
1874: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU3 ) ;
1875: LD_VAR 0 5
1879: PPUSH
1880: LD_INT 138
1882: PPUSH
1883: CALL_OW 52
// l = l + 1 ;
1887: LD_ADDR_VAR 0 6
1891: PUSH
1892: LD_VAR 0 6
1896: PUSH
1897: LD_INT 1
1899: PLUS
1900: ST_TO_ADDR
// end until l = 2 ;
1901: LD_VAR 0 6
1905: PUSH
1906: LD_INT 2
1908: EQUAL
1909: IFFALSE 1729
// end ; end ;
1911: GO 1703
1913: POP
1914: POP
// for i in depotRU4 do
1915: LD_ADDR_VAR 0 4
1919: PUSH
1920: LD_INT 189
1922: PUSH
1923: FOR_IN
1924: IFFALSE 2133
// begin l = 0 ;
1926: LD_ADDR_VAR 0 6
1930: PUSH
1931: LD_INT 0
1933: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1934: LD_VAR 0 4
1938: PPUSH
1939: CALL_OW 310
1943: PUSH
1944: LD_INT 0
1946: EQUAL
1947: IFFALSE 2131
// begin repeat begin uc_side = 3 ;
1949: LD_ADDR_OWVAR 20
1953: PUSH
1954: LD_INT 3
1956: ST_TO_ADDR
// uc_nation = 3 ;
1957: LD_ADDR_OWVAR 21
1961: PUSH
1962: LD_INT 3
1964: ST_TO_ADDR
// hc_gallery =  ;
1965: LD_ADDR_OWVAR 33
1969: PUSH
1970: LD_STRING 
1972: ST_TO_ADDR
// hc_name =  ;
1973: LD_ADDR_OWVAR 26
1977: PUSH
1978: LD_STRING 
1980: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1981: LD_ADDR_OWVAR 29
1985: PUSH
1986: LD_INT 9
1988: PPUSH
1989: LD_INT 11
1991: PPUSH
1992: CALL_OW 12
1996: PUSH
1997: LD_INT 10
1999: PPUSH
2000: LD_INT 12
2002: PPUSH
2003: CALL_OW 12
2007: PUSH
2008: EMPTY
2009: LIST
2010: LIST
2011: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2012: LD_ADDR_OWVAR 31
2016: PUSH
2017: LD_INT 1
2019: PPUSH
2020: LD_INT 3
2022: PPUSH
2023: CALL_OW 12
2027: PUSH
2028: LD_VAR 0 8
2032: PUSH
2033: LD_INT 2
2035: PPUSH
2036: LD_INT 4
2038: PPUSH
2039: CALL_OW 12
2043: PUSH
2044: LD_INT 0
2046: PPUSH
2047: LD_INT 3
2049: PPUSH
2050: CALL_OW 12
2054: PUSH
2055: EMPTY
2056: LIST
2057: LIST
2058: LIST
2059: LIST
2060: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2061: LD_ADDR_OWVAR 27
2065: PUSH
2066: LD_INT 1
2068: PPUSH
2069: LD_INT 2
2071: PPUSH
2072: CALL_OW 12
2076: ST_TO_ADDR
// hc_class = 2 ;
2077: LD_ADDR_OWVAR 28
2081: PUSH
2082: LD_INT 2
2084: ST_TO_ADDR
// un = CreateHuman ;
2085: LD_ADDR_VAR 0 5
2089: PUSH
2090: CALL_OW 44
2094: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU4 ) ;
2095: LD_VAR 0 5
2099: PPUSH
2100: LD_INT 189
2102: PPUSH
2103: CALL_OW 52
// l = l + 1 ;
2107: LD_ADDR_VAR 0 6
2111: PUSH
2112: LD_VAR 0 6
2116: PUSH
2117: LD_INT 1
2119: PLUS
2120: ST_TO_ADDR
// end until l = 2 ;
2121: LD_VAR 0 6
2125: PUSH
2126: LD_INT 2
2128: EQUAL
2129: IFFALSE 1949
// end ; end ;
2131: GO 1923
2133: POP
2134: POP
// for i in armouryRU1 do
2135: LD_ADDR_VAR 0 4
2139: PUSH
2140: LD_INT 59
2142: PUSH
2143: FOR_IN
2144: IFFALSE 2370
// begin l = 0 ;
2146: LD_ADDR_VAR 0 6
2150: PUSH
2151: LD_INT 0
2153: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2154: LD_VAR 0 4
2158: PPUSH
2159: CALL_OW 310
2163: PUSH
2164: LD_INT 0
2166: EQUAL
2167: IFFALSE 2368
// begin repeat begin uc_side = 3 ;
2169: LD_ADDR_OWVAR 20
2173: PUSH
2174: LD_INT 3
2176: ST_TO_ADDR
// uc_nation = 3 ;
2177: LD_ADDR_OWVAR 21
2181: PUSH
2182: LD_INT 3
2184: ST_TO_ADDR
// hc_gallery =  ;
2185: LD_ADDR_OWVAR 33
2189: PUSH
2190: LD_STRING 
2192: ST_TO_ADDR
// hc_name =  ;
2193: LD_ADDR_OWVAR 26
2197: PUSH
2198: LD_STRING 
2200: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2201: LD_ADDR_OWVAR 29
2205: PUSH
2206: LD_INT 9
2208: PPUSH
2209: LD_INT 11
2211: PPUSH
2212: CALL_OW 12
2216: PUSH
2217: LD_INT 10
2219: PPUSH
2220: LD_INT 12
2222: PPUSH
2223: CALL_OW 12
2227: PUSH
2228: EMPTY
2229: LIST
2230: LIST
2231: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2232: LD_ADDR_OWVAR 31
2236: PUSH
2237: LD_VAR 0 7
2241: PUSH
2242: LD_INT 1
2244: PPUSH
2245: LD_INT 3
2247: PPUSH
2248: CALL_OW 12
2252: PUSH
2253: LD_INT 2
2255: PPUSH
2256: LD_INT 4
2258: PPUSH
2259: CALL_OW 12
2263: PUSH
2264: LD_INT 0
2266: PPUSH
2267: LD_INT 3
2269: PPUSH
2270: CALL_OW 12
2274: PUSH
2275: EMPTY
2276: LIST
2277: LIST
2278: LIST
2279: LIST
2280: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2281: LD_ADDR_OWVAR 27
2285: PUSH
2286: LD_INT 1
2288: PPUSH
2289: LD_INT 2
2291: PPUSH
2292: CALL_OW 12
2296: ST_TO_ADDR
// hc_class = 1 ;
2297: LD_ADDR_OWVAR 28
2301: PUSH
2302: LD_INT 1
2304: ST_TO_ADDR
// un = CreateHuman ;
2305: LD_ADDR_VAR 0 5
2309: PUSH
2310: CALL_OW 44
2314: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU1 ) ;
2315: LD_VAR 0 5
2319: PPUSH
2320: LD_INT 59
2322: PPUSH
2323: CALL_OW 52
// l = l + 1 ;
2327: LD_ADDR_VAR 0 6
2331: PUSH
2332: LD_VAR 0 6
2336: PUSH
2337: LD_INT 1
2339: PLUS
2340: ST_TO_ADDR
// end until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2341: LD_VAR 0 6
2345: PUSH
2346: LD_INT 3
2348: PUSH
2349: LD_INT 4
2351: PUSH
2352: LD_INT 4
2354: PUSH
2355: EMPTY
2356: LIST
2357: LIST
2358: LIST
2359: PUSH
2360: LD_OWVAR 67
2364: ARRAY
2365: EQUAL
2366: IFFALSE 2169
// end ; end ;
2368: GO 2143
2370: POP
2371: POP
// for i in armouryRU2 do
2372: LD_ADDR_VAR 0 4
2376: PUSH
2377: LD_INT 18
2379: PUSH
2380: FOR_IN
2381: IFFALSE 2607
// begin l = 0 ;
2383: LD_ADDR_VAR 0 6
2387: PUSH
2388: LD_INT 0
2390: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2391: LD_VAR 0 4
2395: PPUSH
2396: CALL_OW 310
2400: PUSH
2401: LD_INT 0
2403: EQUAL
2404: IFFALSE 2605
// begin repeat begin uc_side = 3 ;
2406: LD_ADDR_OWVAR 20
2410: PUSH
2411: LD_INT 3
2413: ST_TO_ADDR
// uc_nation = 3 ;
2414: LD_ADDR_OWVAR 21
2418: PUSH
2419: LD_INT 3
2421: ST_TO_ADDR
// hc_gallery =  ;
2422: LD_ADDR_OWVAR 33
2426: PUSH
2427: LD_STRING 
2429: ST_TO_ADDR
// hc_name =  ;
2430: LD_ADDR_OWVAR 26
2434: PUSH
2435: LD_STRING 
2437: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2438: LD_ADDR_OWVAR 29
2442: PUSH
2443: LD_INT 9
2445: PPUSH
2446: LD_INT 11
2448: PPUSH
2449: CALL_OW 12
2453: PUSH
2454: LD_INT 10
2456: PPUSH
2457: LD_INT 12
2459: PPUSH
2460: CALL_OW 12
2464: PUSH
2465: EMPTY
2466: LIST
2467: LIST
2468: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2469: LD_ADDR_OWVAR 31
2473: PUSH
2474: LD_VAR 0 7
2478: PUSH
2479: LD_INT 1
2481: PPUSH
2482: LD_INT 3
2484: PPUSH
2485: CALL_OW 12
2489: PUSH
2490: LD_INT 2
2492: PPUSH
2493: LD_INT 4
2495: PPUSH
2496: CALL_OW 12
2500: PUSH
2501: LD_INT 0
2503: PPUSH
2504: LD_INT 3
2506: PPUSH
2507: CALL_OW 12
2511: PUSH
2512: EMPTY
2513: LIST
2514: LIST
2515: LIST
2516: LIST
2517: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2518: LD_ADDR_OWVAR 27
2522: PUSH
2523: LD_INT 1
2525: PPUSH
2526: LD_INT 2
2528: PPUSH
2529: CALL_OW 12
2533: ST_TO_ADDR
// hc_class = 1 ;
2534: LD_ADDR_OWVAR 28
2538: PUSH
2539: LD_INT 1
2541: ST_TO_ADDR
// un = CreateHuman ;
2542: LD_ADDR_VAR 0 5
2546: PUSH
2547: CALL_OW 44
2551: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU2 ) ;
2552: LD_VAR 0 5
2556: PPUSH
2557: LD_INT 18
2559: PPUSH
2560: CALL_OW 52
// l = l + 1 ;
2564: LD_ADDR_VAR 0 6
2568: PUSH
2569: LD_VAR 0 6
2573: PUSH
2574: LD_INT 1
2576: PLUS
2577: ST_TO_ADDR
// end until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2578: LD_VAR 0 6
2582: PUSH
2583: LD_INT 3
2585: PUSH
2586: LD_INT 4
2588: PUSH
2589: LD_INT 4
2591: PUSH
2592: EMPTY
2593: LIST
2594: LIST
2595: LIST
2596: PUSH
2597: LD_OWVAR 67
2601: ARRAY
2602: EQUAL
2603: IFFALSE 2406
// end ; end ;
2605: GO 2380
2607: POP
2608: POP
// for i in armouryRU3 do
2609: LD_ADDR_VAR 0 4
2613: PUSH
2614: LD_INT 191
2616: PUSH
2617: FOR_IN
2618: IFFALSE 2844
// begin l = 0 ;
2620: LD_ADDR_VAR 0 6
2624: PUSH
2625: LD_INT 0
2627: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2628: LD_VAR 0 4
2632: PPUSH
2633: CALL_OW 310
2637: PUSH
2638: LD_INT 0
2640: EQUAL
2641: IFFALSE 2842
// begin repeat begin uc_side = 3 ;
2643: LD_ADDR_OWVAR 20
2647: PUSH
2648: LD_INT 3
2650: ST_TO_ADDR
// uc_nation = 3 ;
2651: LD_ADDR_OWVAR 21
2655: PUSH
2656: LD_INT 3
2658: ST_TO_ADDR
// hc_gallery =  ;
2659: LD_ADDR_OWVAR 33
2663: PUSH
2664: LD_STRING 
2666: ST_TO_ADDR
// hc_name =  ;
2667: LD_ADDR_OWVAR 26
2671: PUSH
2672: LD_STRING 
2674: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2675: LD_ADDR_OWVAR 29
2679: PUSH
2680: LD_INT 9
2682: PPUSH
2683: LD_INT 11
2685: PPUSH
2686: CALL_OW 12
2690: PUSH
2691: LD_INT 10
2693: PPUSH
2694: LD_INT 12
2696: PPUSH
2697: CALL_OW 12
2701: PUSH
2702: EMPTY
2703: LIST
2704: LIST
2705: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
2706: LD_ADDR_OWVAR 31
2710: PUSH
2711: LD_VAR 0 7
2715: PUSH
2716: LD_INT 1
2718: PPUSH
2719: LD_INT 3
2721: PPUSH
2722: CALL_OW 12
2726: PUSH
2727: LD_INT 2
2729: PPUSH
2730: LD_INT 4
2732: PPUSH
2733: CALL_OW 12
2737: PUSH
2738: LD_INT 0
2740: PPUSH
2741: LD_INT 3
2743: PPUSH
2744: CALL_OW 12
2748: PUSH
2749: EMPTY
2750: LIST
2751: LIST
2752: LIST
2753: LIST
2754: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2755: LD_ADDR_OWVAR 27
2759: PUSH
2760: LD_INT 1
2762: PPUSH
2763: LD_INT 2
2765: PPUSH
2766: CALL_OW 12
2770: ST_TO_ADDR
// hc_class = 1 ;
2771: LD_ADDR_OWVAR 28
2775: PUSH
2776: LD_INT 1
2778: ST_TO_ADDR
// un = CreateHuman ;
2779: LD_ADDR_VAR 0 5
2783: PUSH
2784: CALL_OW 44
2788: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU3 ) ;
2789: LD_VAR 0 5
2793: PPUSH
2794: LD_INT 191
2796: PPUSH
2797: CALL_OW 52
// l = l + 1 ;
2801: LD_ADDR_VAR 0 6
2805: PUSH
2806: LD_VAR 0 6
2810: PUSH
2811: LD_INT 1
2813: PLUS
2814: ST_TO_ADDR
// end until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2815: LD_VAR 0 6
2819: PUSH
2820: LD_INT 3
2822: PUSH
2823: LD_INT 4
2825: PUSH
2826: LD_INT 4
2828: PUSH
2829: EMPTY
2830: LIST
2831: LIST
2832: LIST
2833: PUSH
2834: LD_OWVAR 67
2838: ARRAY
2839: EQUAL
2840: IFFALSE 2643
// end ; end ;
2842: GO 2617
2844: POP
2845: POP
// for i in labRU1 do
2846: LD_ADDR_VAR 0 4
2850: PUSH
2851: LD_INT 599
2853: PUSH
2854: FOR_IN
2855: IFFALSE 3064
// begin l = 0 ;
2857: LD_ADDR_VAR 0 6
2861: PUSH
2862: LD_INT 0
2864: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2865: LD_VAR 0 4
2869: PPUSH
2870: CALL_OW 310
2874: PUSH
2875: LD_INT 0
2877: EQUAL
2878: IFFALSE 3062
// begin repeat begin uc_side = 3 ;
2880: LD_ADDR_OWVAR 20
2884: PUSH
2885: LD_INT 3
2887: ST_TO_ADDR
// uc_nation = 3 ;
2888: LD_ADDR_OWVAR 21
2892: PUSH
2893: LD_INT 3
2895: ST_TO_ADDR
// hc_gallery =  ;
2896: LD_ADDR_OWVAR 33
2900: PUSH
2901: LD_STRING 
2903: ST_TO_ADDR
// hc_name =  ;
2904: LD_ADDR_OWVAR 26
2908: PUSH
2909: LD_STRING 
2911: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2912: LD_ADDR_OWVAR 29
2916: PUSH
2917: LD_INT 9
2919: PPUSH
2920: LD_INT 11
2922: PPUSH
2923: CALL_OW 12
2927: PUSH
2928: LD_INT 10
2930: PPUSH
2931: LD_INT 12
2933: PPUSH
2934: CALL_OW 12
2938: PUSH
2939: EMPTY
2940: LIST
2941: LIST
2942: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , DocLevel ] ;
2943: LD_ADDR_OWVAR 31
2947: PUSH
2948: LD_INT 1
2950: PPUSH
2951: LD_INT 3
2953: PPUSH
2954: CALL_OW 12
2958: PUSH
2959: LD_INT 1
2961: PPUSH
2962: LD_INT 4
2964: PPUSH
2965: CALL_OW 12
2969: PUSH
2970: LD_INT 2
2972: PPUSH
2973: LD_INT 4
2975: PPUSH
2976: CALL_OW 12
2980: PUSH
2981: LD_VAR 0 10
2985: PUSH
2986: EMPTY
2987: LIST
2988: LIST
2989: LIST
2990: LIST
2991: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2992: LD_ADDR_OWVAR 27
2996: PUSH
2997: LD_INT 1
2999: PPUSH
3000: LD_INT 2
3002: PPUSH
3003: CALL_OW 12
3007: ST_TO_ADDR
// hc_class = 4 ;
3008: LD_ADDR_OWVAR 28
3012: PUSH
3013: LD_INT 4
3015: ST_TO_ADDR
// un = CreateHuman ;
3016: LD_ADDR_VAR 0 5
3020: PUSH
3021: CALL_OW 44
3025: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU1 ) ;
3026: LD_VAR 0 5
3030: PPUSH
3031: LD_INT 599
3033: PPUSH
3034: CALL_OW 52
// l = l + 1 ;
3038: LD_ADDR_VAR 0 6
3042: PUSH
3043: LD_VAR 0 6
3047: PUSH
3048: LD_INT 1
3050: PLUS
3051: ST_TO_ADDR
// end until l = 1 ;
3052: LD_VAR 0 6
3056: PUSH
3057: LD_INT 1
3059: EQUAL
3060: IFFALSE 2880
// end ; end ;
3062: GO 2854
3064: POP
3065: POP
// for i in labRU2 do
3066: LD_ADDR_VAR 0 4
3070: PUSH
3071: LD_INT 596
3073: PUSH
3074: FOR_IN
3075: IFFALSE 3284
// begin l = 0 ;
3077: LD_ADDR_VAR 0 6
3081: PUSH
3082: LD_INT 0
3084: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3085: LD_VAR 0 4
3089: PPUSH
3090: CALL_OW 310
3094: PUSH
3095: LD_INT 0
3097: EQUAL
3098: IFFALSE 3282
// begin repeat begin uc_side = 3 ;
3100: LD_ADDR_OWVAR 20
3104: PUSH
3105: LD_INT 3
3107: ST_TO_ADDR
// uc_nation = 3 ;
3108: LD_ADDR_OWVAR 21
3112: PUSH
3113: LD_INT 3
3115: ST_TO_ADDR
// hc_gallery =  ;
3116: LD_ADDR_OWVAR 33
3120: PUSH
3121: LD_STRING 
3123: ST_TO_ADDR
// hc_name =  ;
3124: LD_ADDR_OWVAR 26
3128: PUSH
3129: LD_STRING 
3131: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3132: LD_ADDR_OWVAR 29
3136: PUSH
3137: LD_INT 9
3139: PPUSH
3140: LD_INT 11
3142: PPUSH
3143: CALL_OW 12
3147: PUSH
3148: LD_INT 10
3150: PPUSH
3151: LD_INT 12
3153: PPUSH
3154: CALL_OW 12
3158: PUSH
3159: EMPTY
3160: LIST
3161: LIST
3162: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , DocLevel ] ;
3163: LD_ADDR_OWVAR 31
3167: PUSH
3168: LD_INT 1
3170: PPUSH
3171: LD_INT 3
3173: PPUSH
3174: CALL_OW 12
3178: PUSH
3179: LD_INT 1
3181: PPUSH
3182: LD_INT 4
3184: PPUSH
3185: CALL_OW 12
3189: PUSH
3190: LD_INT 2
3192: PPUSH
3193: LD_INT 4
3195: PPUSH
3196: CALL_OW 12
3200: PUSH
3201: LD_VAR 0 10
3205: PUSH
3206: EMPTY
3207: LIST
3208: LIST
3209: LIST
3210: LIST
3211: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3212: LD_ADDR_OWVAR 27
3216: PUSH
3217: LD_INT 1
3219: PPUSH
3220: LD_INT 2
3222: PPUSH
3223: CALL_OW 12
3227: ST_TO_ADDR
// hc_class = 4 ;
3228: LD_ADDR_OWVAR 28
3232: PUSH
3233: LD_INT 4
3235: ST_TO_ADDR
// un = CreateHuman ;
3236: LD_ADDR_VAR 0 5
3240: PUSH
3241: CALL_OW 44
3245: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU2 ) ;
3246: LD_VAR 0 5
3250: PPUSH
3251: LD_INT 596
3253: PPUSH
3254: CALL_OW 52
// l = l + 1 ;
3258: LD_ADDR_VAR 0 6
3262: PUSH
3263: LD_VAR 0 6
3267: PUSH
3268: LD_INT 1
3270: PLUS
3271: ST_TO_ADDR
// end until l = 1 ;
3272: LD_VAR 0 6
3276: PUSH
3277: LD_INT 1
3279: EQUAL
3280: IFFALSE 3100
// end ; end ;
3282: GO 3074
3284: POP
3285: POP
// for i in labRU3 do
3286: LD_ADDR_VAR 0 4
3290: PUSH
3291: LD_INT 128
3293: PUSH
3294: FOR_IN
3295: IFFALSE 3504
// begin l = 0 ;
3297: LD_ADDR_VAR 0 6
3301: PUSH
3302: LD_INT 0
3304: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3305: LD_VAR 0 4
3309: PPUSH
3310: CALL_OW 310
3314: PUSH
3315: LD_INT 0
3317: EQUAL
3318: IFFALSE 3502
// begin repeat begin uc_side = 3 ;
3320: LD_ADDR_OWVAR 20
3324: PUSH
3325: LD_INT 3
3327: ST_TO_ADDR
// uc_nation = 3 ;
3328: LD_ADDR_OWVAR 21
3332: PUSH
3333: LD_INT 3
3335: ST_TO_ADDR
// hc_gallery =  ;
3336: LD_ADDR_OWVAR 33
3340: PUSH
3341: LD_STRING 
3343: ST_TO_ADDR
// hc_name =  ;
3344: LD_ADDR_OWVAR 26
3348: PUSH
3349: LD_STRING 
3351: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3352: LD_ADDR_OWVAR 29
3356: PUSH
3357: LD_INT 9
3359: PPUSH
3360: LD_INT 11
3362: PPUSH
3363: CALL_OW 12
3367: PUSH
3368: LD_INT 10
3370: PPUSH
3371: LD_INT 12
3373: PPUSH
3374: CALL_OW 12
3378: PUSH
3379: EMPTY
3380: LIST
3381: LIST
3382: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Rand ( 2 , 4 ) , DocLevel ] ;
3383: LD_ADDR_OWVAR 31
3387: PUSH
3388: LD_INT 1
3390: PPUSH
3391: LD_INT 3
3393: PPUSH
3394: CALL_OW 12
3398: PUSH
3399: LD_INT 1
3401: PPUSH
3402: LD_INT 4
3404: PPUSH
3405: CALL_OW 12
3409: PUSH
3410: LD_INT 2
3412: PPUSH
3413: LD_INT 4
3415: PPUSH
3416: CALL_OW 12
3420: PUSH
3421: LD_VAR 0 10
3425: PUSH
3426: EMPTY
3427: LIST
3428: LIST
3429: LIST
3430: LIST
3431: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3432: LD_ADDR_OWVAR 27
3436: PUSH
3437: LD_INT 1
3439: PPUSH
3440: LD_INT 2
3442: PPUSH
3443: CALL_OW 12
3447: ST_TO_ADDR
// hc_class = 4 ;
3448: LD_ADDR_OWVAR 28
3452: PUSH
3453: LD_INT 4
3455: ST_TO_ADDR
// un = CreateHuman ;
3456: LD_ADDR_VAR 0 5
3460: PUSH
3461: CALL_OW 44
3465: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU3 ) ;
3466: LD_VAR 0 5
3470: PPUSH
3471: LD_INT 128
3473: PPUSH
3474: CALL_OW 52
// l = l + 1 ;
3478: LD_ADDR_VAR 0 6
3482: PUSH
3483: LD_VAR 0 6
3487: PUSH
3488: LD_INT 1
3490: PLUS
3491: ST_TO_ADDR
// end until l = 1 ;
3492: LD_VAR 0 6
3496: PUSH
3497: LD_INT 1
3499: EQUAL
3500: IFFALSE 3320
// end ; end ;
3502: GO 3294
3504: POP
3505: POP
// for i in factoryRU1 do
3506: LD_ADDR_VAR 0 4
3510: PUSH
3511: LD_INT 88
3513: PUSH
3514: FOR_IN
3515: IFFALSE 3745
// begin l = 0 ;
3517: LD_ADDR_VAR 0 6
3521: PUSH
3522: LD_INT 0
3524: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3525: LD_VAR 0 4
3529: PPUSH
3530: CALL_OW 310
3534: PUSH
3535: LD_INT 0
3537: EQUAL
3538: IFFALSE 3743
// begin repeat begin uc_side = 3 ;
3540: LD_ADDR_OWVAR 20
3544: PUSH
3545: LD_INT 3
3547: ST_TO_ADDR
// uc_nation = 3 ;
3548: LD_ADDR_OWVAR 21
3552: PUSH
3553: LD_INT 3
3555: ST_TO_ADDR
// hc_gallery =  ;
3556: LD_ADDR_OWVAR 33
3560: PUSH
3561: LD_STRING 
3563: ST_TO_ADDR
// hc_name =  ;
3564: LD_ADDR_OWVAR 26
3568: PUSH
3569: LD_STRING 
3571: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3572: LD_ADDR_OWVAR 29
3576: PUSH
3577: LD_INT 9
3579: PPUSH
3580: LD_INT 11
3582: PPUSH
3583: CALL_OW 12
3587: PUSH
3588: LD_INT 10
3590: PPUSH
3591: LD_INT 12
3593: PPUSH
3594: CALL_OW 12
3598: PUSH
3599: EMPTY
3600: LIST
3601: LIST
3602: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , Mechlevel , Rand ( 1 , 5 ) ] ;
3603: LD_ADDR_OWVAR 31
3607: PUSH
3608: LD_INT 1
3610: PPUSH
3611: LD_INT 3
3613: PPUSH
3614: CALL_OW 12
3618: PUSH
3619: LD_INT 1
3621: PPUSH
3622: LD_INT 4
3624: PPUSH
3625: CALL_OW 12
3629: PUSH
3630: LD_VAR 0 9
3634: PUSH
3635: LD_INT 1
3637: PPUSH
3638: LD_INT 5
3640: PPUSH
3641: CALL_OW 12
3645: PUSH
3646: EMPTY
3647: LIST
3648: LIST
3649: LIST
3650: LIST
3651: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3652: LD_ADDR_OWVAR 27
3656: PUSH
3657: LD_INT 1
3659: PPUSH
3660: LD_INT 2
3662: PPUSH
3663: CALL_OW 12
3667: ST_TO_ADDR
// hc_class = 3 ;
3668: LD_ADDR_OWVAR 28
3672: PUSH
3673: LD_INT 3
3675: ST_TO_ADDR
// un = CreateHuman ;
3676: LD_ADDR_VAR 0 5
3680: PUSH
3681: CALL_OW 44
3685: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU1 ) ;
3686: LD_VAR 0 5
3690: PPUSH
3691: LD_INT 88
3693: PPUSH
3694: CALL_OW 52
// l = l + 1 ;
3698: LD_ADDR_VAR 0 6
3702: PUSH
3703: LD_VAR 0 6
3707: PUSH
3708: LD_INT 1
3710: PLUS
3711: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] + 2 ;
3712: LD_VAR 0 6
3716: PUSH
3717: LD_INT 1
3719: PUSH
3720: LD_INT 2
3722: PUSH
3723: LD_INT 2
3725: PUSH
3726: EMPTY
3727: LIST
3728: LIST
3729: LIST
3730: PUSH
3731: LD_OWVAR 67
3735: ARRAY
3736: PUSH
3737: LD_INT 2
3739: PLUS
3740: EQUAL
3741: IFFALSE 3540
// end ; end ;
3743: GO 3514
3745: POP
3746: POP
// for i in factoryRU2 do
3747: LD_ADDR_VAR 0 4
3751: PUSH
3752: LD_INT 8
3754: PUSH
3755: FOR_IN
3756: IFFALSE 3980
// begin l = 0 ;
3758: LD_ADDR_VAR 0 6
3762: PUSH
3763: LD_INT 0
3765: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3766: LD_VAR 0 4
3770: PPUSH
3771: CALL_OW 310
3775: PUSH
3776: LD_INT 0
3778: EQUAL
3779: IFFALSE 3978
// begin repeat begin uc_side = 3 ;
3781: LD_ADDR_OWVAR 20
3785: PUSH
3786: LD_INT 3
3788: ST_TO_ADDR
// uc_nation = 3 ;
3789: LD_ADDR_OWVAR 21
3793: PUSH
3794: LD_INT 3
3796: ST_TO_ADDR
// hc_gallery =  ;
3797: LD_ADDR_OWVAR 33
3801: PUSH
3802: LD_STRING 
3804: ST_TO_ADDR
// hc_name =  ;
3805: LD_ADDR_OWVAR 26
3809: PUSH
3810: LD_STRING 
3812: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3813: LD_ADDR_OWVAR 29
3817: PUSH
3818: LD_INT 9
3820: PPUSH
3821: LD_INT 11
3823: PPUSH
3824: CALL_OW 12
3828: PUSH
3829: LD_INT 10
3831: PPUSH
3832: LD_INT 12
3834: PPUSH
3835: CALL_OW 12
3839: PUSH
3840: EMPTY
3841: LIST
3842: LIST
3843: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
3844: LD_ADDR_OWVAR 31
3848: PUSH
3849: LD_INT 1
3851: PPUSH
3852: LD_INT 3
3854: PPUSH
3855: CALL_OW 12
3859: PUSH
3860: LD_INT 1
3862: PPUSH
3863: LD_INT 4
3865: PPUSH
3866: CALL_OW 12
3870: PUSH
3871: LD_INT 9
3873: PUSH
3874: LD_INT 1
3876: PPUSH
3877: LD_INT 5
3879: PPUSH
3880: CALL_OW 12
3884: PUSH
3885: EMPTY
3886: LIST
3887: LIST
3888: LIST
3889: LIST
3890: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3891: LD_ADDR_OWVAR 27
3895: PUSH
3896: LD_INT 1
3898: PPUSH
3899: LD_INT 2
3901: PPUSH
3902: CALL_OW 12
3906: ST_TO_ADDR
// hc_class = 3 ;
3907: LD_ADDR_OWVAR 28
3911: PUSH
3912: LD_INT 3
3914: ST_TO_ADDR
// un = CreateHuman ;
3915: LD_ADDR_VAR 0 5
3919: PUSH
3920: CALL_OW 44
3924: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU2 ) ;
3925: LD_VAR 0 5
3929: PPUSH
3930: LD_INT 8
3932: PPUSH
3933: CALL_OW 52
// l = l + 1 ;
3937: LD_ADDR_VAR 0 6
3941: PUSH
3942: LD_VAR 0 6
3946: PUSH
3947: LD_INT 1
3949: PLUS
3950: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] ;
3951: LD_VAR 0 6
3955: PUSH
3956: LD_INT 1
3958: PUSH
3959: LD_INT 2
3961: PUSH
3962: LD_INT 2
3964: PUSH
3965: EMPTY
3966: LIST
3967: LIST
3968: LIST
3969: PUSH
3970: LD_OWVAR 67
3974: ARRAY
3975: EQUAL
3976: IFFALSE 3781
// end ; end ;
3978: GO 3755
3980: POP
3981: POP
// for i in factoryRU3 do
3982: LD_ADDR_VAR 0 4
3986: PUSH
3987: LD_INT 122
3989: PUSH
3990: FOR_IN
3991: IFFALSE 4215
// begin l = 0 ;
3993: LD_ADDR_VAR 0 6
3997: PUSH
3998: LD_INT 0
4000: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4001: LD_VAR 0 4
4005: PPUSH
4006: CALL_OW 310
4010: PUSH
4011: LD_INT 0
4013: EQUAL
4014: IFFALSE 4213
// begin repeat begin uc_side = 3 ;
4016: LD_ADDR_OWVAR 20
4020: PUSH
4021: LD_INT 3
4023: ST_TO_ADDR
// uc_nation = 3 ;
4024: LD_ADDR_OWVAR 21
4028: PUSH
4029: LD_INT 3
4031: ST_TO_ADDR
// hc_gallery =  ;
4032: LD_ADDR_OWVAR 33
4036: PUSH
4037: LD_STRING 
4039: ST_TO_ADDR
// hc_name =  ;
4040: LD_ADDR_OWVAR 26
4044: PUSH
4045: LD_STRING 
4047: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4048: LD_ADDR_OWVAR 29
4052: PUSH
4053: LD_INT 9
4055: PPUSH
4056: LD_INT 11
4058: PPUSH
4059: CALL_OW 12
4063: PUSH
4064: LD_INT 10
4066: PPUSH
4067: LD_INT 12
4069: PPUSH
4070: CALL_OW 12
4074: PUSH
4075: EMPTY
4076: LIST
4077: LIST
4078: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
4079: LD_ADDR_OWVAR 31
4083: PUSH
4084: LD_INT 1
4086: PPUSH
4087: LD_INT 3
4089: PPUSH
4090: CALL_OW 12
4094: PUSH
4095: LD_INT 1
4097: PPUSH
4098: LD_INT 4
4100: PPUSH
4101: CALL_OW 12
4105: PUSH
4106: LD_INT 9
4108: PUSH
4109: LD_INT 1
4111: PPUSH
4112: LD_INT 5
4114: PPUSH
4115: CALL_OW 12
4119: PUSH
4120: EMPTY
4121: LIST
4122: LIST
4123: LIST
4124: LIST
4125: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4126: LD_ADDR_OWVAR 27
4130: PUSH
4131: LD_INT 1
4133: PPUSH
4134: LD_INT 2
4136: PPUSH
4137: CALL_OW 12
4141: ST_TO_ADDR
// hc_class = 3 ;
4142: LD_ADDR_OWVAR 28
4146: PUSH
4147: LD_INT 3
4149: ST_TO_ADDR
// un = CreateHuman ;
4150: LD_ADDR_VAR 0 5
4154: PUSH
4155: CALL_OW 44
4159: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU3 ) ;
4160: LD_VAR 0 5
4164: PPUSH
4165: LD_INT 122
4167: PPUSH
4168: CALL_OW 52
// l = l + 1 ;
4172: LD_ADDR_VAR 0 6
4176: PUSH
4177: LD_VAR 0 6
4181: PUSH
4182: LD_INT 1
4184: PLUS
4185: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] ;
4186: LD_VAR 0 6
4190: PUSH
4191: LD_INT 1
4193: PUSH
4194: LD_INT 2
4196: PUSH
4197: LD_INT 2
4199: PUSH
4200: EMPTY
4201: LIST
4202: LIST
4203: LIST
4204: PUSH
4205: LD_OWVAR 67
4209: ARRAY
4210: EQUAL
4211: IFFALSE 4016
// end ; end ;
4213: GO 3990
4215: POP
4216: POP
// for i in factoryRU4 do
4217: LD_ADDR_VAR 0 4
4221: PUSH
4222: LD_INT 195
4224: PUSH
4225: FOR_IN
4226: IFFALSE 4450
// begin l = 0 ;
4228: LD_ADDR_VAR 0 6
4232: PUSH
4233: LD_INT 0
4235: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4236: LD_VAR 0 4
4240: PPUSH
4241: CALL_OW 310
4245: PUSH
4246: LD_INT 0
4248: EQUAL
4249: IFFALSE 4448
// begin repeat begin uc_side = 3 ;
4251: LD_ADDR_OWVAR 20
4255: PUSH
4256: LD_INT 3
4258: ST_TO_ADDR
// uc_nation = 3 ;
4259: LD_ADDR_OWVAR 21
4263: PUSH
4264: LD_INT 3
4266: ST_TO_ADDR
// hc_gallery =  ;
4267: LD_ADDR_OWVAR 33
4271: PUSH
4272: LD_STRING 
4274: ST_TO_ADDR
// hc_name =  ;
4275: LD_ADDR_OWVAR 26
4279: PUSH
4280: LD_STRING 
4282: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4283: LD_ADDR_OWVAR 29
4287: PUSH
4288: LD_INT 9
4290: PPUSH
4291: LD_INT 11
4293: PPUSH
4294: CALL_OW 12
4298: PUSH
4299: LD_INT 10
4301: PPUSH
4302: LD_INT 12
4304: PPUSH
4305: CALL_OW 12
4309: PUSH
4310: EMPTY
4311: LIST
4312: LIST
4313: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
4314: LD_ADDR_OWVAR 31
4318: PUSH
4319: LD_INT 1
4321: PPUSH
4322: LD_INT 3
4324: PPUSH
4325: CALL_OW 12
4329: PUSH
4330: LD_INT 1
4332: PPUSH
4333: LD_INT 4
4335: PPUSH
4336: CALL_OW 12
4340: PUSH
4341: LD_INT 9
4343: PUSH
4344: LD_INT 1
4346: PPUSH
4347: LD_INT 5
4349: PPUSH
4350: CALL_OW 12
4354: PUSH
4355: EMPTY
4356: LIST
4357: LIST
4358: LIST
4359: LIST
4360: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4361: LD_ADDR_OWVAR 27
4365: PUSH
4366: LD_INT 1
4368: PPUSH
4369: LD_INT 2
4371: PPUSH
4372: CALL_OW 12
4376: ST_TO_ADDR
// hc_class = 3 ;
4377: LD_ADDR_OWVAR 28
4381: PUSH
4382: LD_INT 3
4384: ST_TO_ADDR
// un = CreateHuman ;
4385: LD_ADDR_VAR 0 5
4389: PUSH
4390: CALL_OW 44
4394: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU4 ) ;
4395: LD_VAR 0 5
4399: PPUSH
4400: LD_INT 195
4402: PPUSH
4403: CALL_OW 52
// l = l + 1 ;
4407: LD_ADDR_VAR 0 6
4411: PUSH
4412: LD_VAR 0 6
4416: PUSH
4417: LD_INT 1
4419: PLUS
4420: ST_TO_ADDR
// end until l = [ 1 , 2 , 2 ] [ Difficulty ] ;
4421: LD_VAR 0 6
4425: PUSH
4426: LD_INT 1
4428: PUSH
4429: LD_INT 2
4431: PUSH
4432: LD_INT 2
4434: PUSH
4435: EMPTY
4436: LIST
4437: LIST
4438: LIST
4439: PUSH
4440: LD_OWVAR 67
4444: ARRAY
4445: EQUAL
4446: IFFALSE 4251
// end ; end ;
4448: GO 4225
4450: POP
4451: POP
// for i in controlUS1 do
4452: LD_ADDR_VAR 0 4
4456: PUSH
4457: LD_INT 533
4459: PUSH
4460: FOR_IN
4461: IFFALSE 4668
// begin l = 0 ;
4463: LD_ADDR_VAR 0 6
4467: PUSH
4468: LD_INT 0
4470: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4471: LD_VAR 0 4
4475: PPUSH
4476: CALL_OW 310
4480: PUSH
4481: LD_INT 0
4483: EQUAL
4484: IFFALSE 4666
// begin repeat begin uc_side = 1 ;
4486: LD_ADDR_OWVAR 20
4490: PUSH
4491: LD_INT 1
4493: ST_TO_ADDR
// uc_nation = 1 ;
4494: LD_ADDR_OWVAR 21
4498: PUSH
4499: LD_INT 1
4501: ST_TO_ADDR
// hc_gallery =  ;
4502: LD_ADDR_OWVAR 33
4506: PUSH
4507: LD_STRING 
4509: ST_TO_ADDR
// hc_name =  ;
4510: LD_ADDR_OWVAR 26
4514: PUSH
4515: LD_STRING 
4517: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4518: LD_ADDR_OWVAR 29
4522: PUSH
4523: LD_INT 9
4525: PPUSH
4526: LD_INT 11
4528: PPUSH
4529: CALL_OW 12
4533: PUSH
4534: LD_INT 10
4536: PPUSH
4537: LD_INT 12
4539: PPUSH
4540: CALL_OW 12
4544: PUSH
4545: EMPTY
4546: LIST
4547: LIST
4548: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 1 , 4 ) , 9 , Rand ( 1 , 5 ) ] ;
4549: LD_ADDR_OWVAR 31
4553: PUSH
4554: LD_INT 1
4556: PPUSH
4557: LD_INT 3
4559: PPUSH
4560: CALL_OW 12
4564: PUSH
4565: LD_INT 1
4567: PPUSH
4568: LD_INT 4
4570: PPUSH
4571: CALL_OW 12
4575: PUSH
4576: LD_INT 9
4578: PUSH
4579: LD_INT 1
4581: PPUSH
4582: LD_INT 5
4584: PPUSH
4585: CALL_OW 12
4589: PUSH
4590: EMPTY
4591: LIST
4592: LIST
4593: LIST
4594: LIST
4595: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4596: LD_ADDR_OWVAR 27
4600: PUSH
4601: LD_INT 1
4603: PPUSH
4604: LD_INT 2
4606: PPUSH
4607: CALL_OW 12
4611: ST_TO_ADDR
// hc_class = 3 ;
4612: LD_ADDR_OWVAR 28
4616: PUSH
4617: LD_INT 3
4619: ST_TO_ADDR
// un = CreateHuman ;
4620: LD_ADDR_VAR 0 5
4624: PUSH
4625: CALL_OW 44
4629: ST_TO_ADDR
// PlaceHumanInUnit ( un , controlUS1 ) ;
4630: LD_VAR 0 5
4634: PPUSH
4635: LD_INT 533
4637: PPUSH
4638: CALL_OW 52
// l = l + 1 ;
4642: LD_ADDR_VAR 0 6
4646: PUSH
4647: LD_VAR 0 6
4651: PUSH
4652: LD_INT 1
4654: PLUS
4655: ST_TO_ADDR
// end until l = 1 ;
4656: LD_VAR 0 6
4660: PUSH
4661: LD_INT 1
4663: EQUAL
4664: IFFALSE 4486
// end ; end ;
4666: GO 4460
4668: POP
4669: POP
// end ; end_of_file
4670: LD_VAR 0 1
4674: RET
// every 0 0$01 do
4675: GO 4677
4677: DISABLE
// begin case Difficulty of 1 :
4678: LD_OWVAR 67
4682: PUSH
4683: LD_INT 1
4685: DOUBLE
4686: EQUAL
4687: IFTRUE 4691
4689: GO 4811
4691: POP
// begin SetTech ( 48 , 6 , state_Researched ) ;
4692: LD_INT 48
4694: PPUSH
4695: LD_INT 6
4697: PPUSH
4698: LD_INT 2
4700: PPUSH
4701: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
4705: LD_INT 51
4707: PPUSH
4708: LD_INT 6
4710: PPUSH
4711: LD_INT 2
4713: PPUSH
4714: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
4718: LD_INT 49
4720: PPUSH
4721: LD_INT 6
4723: PPUSH
4724: LD_INT 2
4726: PPUSH
4727: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
4731: LD_INT 48
4733: PPUSH
4734: LD_INT 3
4736: PPUSH
4737: LD_INT 2
4739: PPUSH
4740: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
4744: LD_INT 51
4746: PPUSH
4747: LD_INT 3
4749: PPUSH
4750: LD_INT 2
4752: PPUSH
4753: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
4757: LD_INT 49
4759: PPUSH
4760: LD_INT 3
4762: PPUSH
4763: LD_INT 2
4765: PPUSH
4766: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
4770: LD_INT 48
4772: PPUSH
4773: LD_INT 5
4775: PPUSH
4776: LD_INT 2
4778: PPUSH
4779: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
4783: LD_INT 51
4785: PPUSH
4786: LD_INT 5
4788: PPUSH
4789: LD_INT 2
4791: PPUSH
4792: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
4796: LD_INT 49
4798: PPUSH
4799: LD_INT 5
4801: PPUSH
4802: LD_INT 2
4804: PPUSH
4805: CALL_OW 322
// end ; 2 :
4809: GO 5263
4811: LD_INT 2
4813: DOUBLE
4814: EQUAL
4815: IFTRUE 4819
4817: GO 5017
4819: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
4820: LD_INT 57
4822: PPUSH
4823: LD_INT 6
4825: PPUSH
4826: LD_INT 2
4828: PPUSH
4829: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
4833: LD_INT 48
4835: PPUSH
4836: LD_INT 6
4838: PPUSH
4839: LD_INT 2
4841: PPUSH
4842: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
4846: LD_INT 49
4848: PPUSH
4849: LD_INT 6
4851: PPUSH
4852: LD_INT 2
4854: PPUSH
4855: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
4859: LD_INT 51
4861: PPUSH
4862: LD_INT 6
4864: PPUSH
4865: LD_INT 2
4867: PPUSH
4868: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
4872: LD_INT 52
4874: PPUSH
4875: LD_INT 6
4877: PPUSH
4878: LD_INT 2
4880: PPUSH
4881: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
4885: LD_INT 57
4887: PPUSH
4888: LD_INT 3
4890: PPUSH
4891: LD_INT 2
4893: PPUSH
4894: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
4898: LD_INT 48
4900: PPUSH
4901: LD_INT 3
4903: PPUSH
4904: LD_INT 2
4906: PPUSH
4907: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
4911: LD_INT 49
4913: PPUSH
4914: LD_INT 3
4916: PPUSH
4917: LD_INT 2
4919: PPUSH
4920: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
4924: LD_INT 51
4926: PPUSH
4927: LD_INT 3
4929: PPUSH
4930: LD_INT 2
4932: PPUSH
4933: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
4937: LD_INT 52
4939: PPUSH
4940: LD_INT 3
4942: PPUSH
4943: LD_INT 2
4945: PPUSH
4946: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
4950: LD_INT 57
4952: PPUSH
4953: LD_INT 5
4955: PPUSH
4956: LD_INT 2
4958: PPUSH
4959: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
4963: LD_INT 48
4965: PPUSH
4966: LD_INT 5
4968: PPUSH
4969: LD_INT 2
4971: PPUSH
4972: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
4976: LD_INT 49
4978: PPUSH
4979: LD_INT 5
4981: PPUSH
4982: LD_INT 2
4984: PPUSH
4985: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
4989: LD_INT 51
4991: PPUSH
4992: LD_INT 5
4994: PPUSH
4995: LD_INT 2
4997: PPUSH
4998: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
5002: LD_INT 52
5004: PPUSH
5005: LD_INT 5
5007: PPUSH
5008: LD_INT 2
5010: PPUSH
5011: CALL_OW 322
// end ; 3 :
5015: GO 5263
5017: LD_INT 3
5019: DOUBLE
5020: EQUAL
5021: IFTRUE 5025
5023: GO 5262
5025: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
5026: LD_INT 57
5028: PPUSH
5029: LD_INT 6
5031: PPUSH
5032: LD_INT 2
5034: PPUSH
5035: CALL_OW 322
// SetTech ( 58 , 6 , state_Researched ) ;
5039: LD_INT 58
5041: PPUSH
5042: LD_INT 6
5044: PPUSH
5045: LD_INT 2
5047: PPUSH
5048: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
5052: LD_INT 48
5054: PPUSH
5055: LD_INT 6
5057: PPUSH
5058: LD_INT 2
5060: PPUSH
5061: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
5065: LD_INT 49
5067: PPUSH
5068: LD_INT 6
5070: PPUSH
5071: LD_INT 2
5073: PPUSH
5074: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
5078: LD_INT 51
5080: PPUSH
5081: LD_INT 6
5083: PPUSH
5084: LD_INT 2
5086: PPUSH
5087: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
5091: LD_INT 52
5093: PPUSH
5094: LD_INT 6
5096: PPUSH
5097: LD_INT 2
5099: PPUSH
5100: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
5104: LD_INT 57
5106: PPUSH
5107: LD_INT 3
5109: PPUSH
5110: LD_INT 2
5112: PPUSH
5113: CALL_OW 322
// SetTech ( 58 , 3 , state_Researched ) ;
5117: LD_INT 58
5119: PPUSH
5120: LD_INT 3
5122: PPUSH
5123: LD_INT 2
5125: PPUSH
5126: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
5130: LD_INT 48
5132: PPUSH
5133: LD_INT 3
5135: PPUSH
5136: LD_INT 2
5138: PPUSH
5139: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
5143: LD_INT 49
5145: PPUSH
5146: LD_INT 3
5148: PPUSH
5149: LD_INT 2
5151: PPUSH
5152: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
5156: LD_INT 51
5158: PPUSH
5159: LD_INT 3
5161: PPUSH
5162: LD_INT 2
5164: PPUSH
5165: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
5169: LD_INT 52
5171: PPUSH
5172: LD_INT 3
5174: PPUSH
5175: LD_INT 2
5177: PPUSH
5178: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
5182: LD_INT 57
5184: PPUSH
5185: LD_INT 5
5187: PPUSH
5188: LD_INT 2
5190: PPUSH
5191: CALL_OW 322
// SetTech ( 58 , 5 , state_Researched ) ;
5195: LD_INT 58
5197: PPUSH
5198: LD_INT 5
5200: PPUSH
5201: LD_INT 2
5203: PPUSH
5204: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
5208: LD_INT 48
5210: PPUSH
5211: LD_INT 5
5213: PPUSH
5214: LD_INT 2
5216: PPUSH
5217: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
5221: LD_INT 49
5223: PPUSH
5224: LD_INT 5
5226: PPUSH
5227: LD_INT 2
5229: PPUSH
5230: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
5234: LD_INT 51
5236: PPUSH
5237: LD_INT 5
5239: PPUSH
5240: LD_INT 2
5242: PPUSH
5243: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
5247: LD_INT 52
5249: PPUSH
5250: LD_INT 5
5252: PPUSH
5253: LD_INT 2
5255: PPUSH
5256: CALL_OW 322
// end ; end ;
5260: GO 5263
5262: POP
// end ;
5263: END
// every 2 2$25 trigger xy = 1 do
5264: LD_EXP 2
5268: PUSH
5269: LD_INT 1
5271: EQUAL
5272: IFFALSE 5282
5274: GO 5276
5276: DISABLE
// begin enable ;
5277: ENABLE
// ProductionVehicles ;
5278: CALL 6418 0 0
// end ;
5282: END
// every 4 4$00 do var RuBase ;
5283: GO 5285
5285: DISABLE
5286: LD_INT 0
5288: PPUSH
// begin enable ;
5289: ENABLE
// RuBase := LoadVariable ( Attack_behind_08 , 0 ) ;
5290: LD_ADDR_VAR 0 1
5294: PUSH
5295: LD_STRING Attack_behind_08
5297: PPUSH
5298: LD_INT 0
5300: PPUSH
5301: CALL_OW 30
5305: ST_TO_ADDR
// if RuBase = 1 then
5306: LD_VAR 0 1
5310: PUSH
5311: LD_INT 1
5313: EQUAL
5314: IFFALSE 5318
// begin end else
5316: GO 5332
// if RuBase = 2 then
5318: LD_VAR 0 1
5322: PUSH
5323: LD_INT 2
5325: EQUAL
5326: IFFALSE 5332
// begin BehindForces ;
5328: CALL 5592 0 0
// end ; end ;
5332: PPOPN 1
5334: END
// export function SoldiersAttack ; var un , l , SLevel , SNum ; begin
5335: LD_INT 0
5337: PPUSH
5338: PPUSH
5339: PPUSH
5340: PPUSH
5341: PPUSH
// SNum = [ 2 , 3 , 4 ] [ Difficulty ] ;
5342: LD_ADDR_VAR 0 5
5346: PUSH
5347: LD_INT 2
5349: PUSH
5350: LD_INT 3
5352: PUSH
5353: LD_INT 4
5355: PUSH
5356: EMPTY
5357: LIST
5358: LIST
5359: LIST
5360: PUSH
5361: LD_OWVAR 67
5365: ARRAY
5366: ST_TO_ADDR
// SLevel = [ 5 , 6 , 6 ] [ Difficulty ] ;
5367: LD_ADDR_VAR 0 4
5371: PUSH
5372: LD_INT 5
5374: PUSH
5375: LD_INT 6
5377: PUSH
5378: LD_INT 6
5380: PUSH
5381: EMPTY
5382: LIST
5383: LIST
5384: LIST
5385: PUSH
5386: LD_OWVAR 67
5390: ARRAY
5391: ST_TO_ADDR
// l = 0 ;
5392: LD_ADDR_VAR 0 3
5396: PUSH
5397: LD_INT 0
5399: ST_TO_ADDR
// repeat uc_side = 6 ;
5400: LD_ADDR_OWVAR 20
5404: PUSH
5405: LD_INT 6
5407: ST_TO_ADDR
// uc_nation = 3 ;
5408: LD_ADDR_OWVAR 21
5412: PUSH
5413: LD_INT 3
5415: ST_TO_ADDR
// hc_gallery =  ;
5416: LD_ADDR_OWVAR 33
5420: PUSH
5421: LD_STRING 
5423: ST_TO_ADDR
// hc_name =  ;
5424: LD_ADDR_OWVAR 26
5428: PUSH
5429: LD_STRING 
5431: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5432: LD_ADDR_OWVAR 29
5436: PUSH
5437: LD_INT 9
5439: PPUSH
5440: LD_INT 11
5442: PPUSH
5443: CALL_OW 12
5447: PUSH
5448: LD_INT 10
5450: PPUSH
5451: LD_INT 12
5453: PPUSH
5454: CALL_OW 12
5458: PUSH
5459: EMPTY
5460: LIST
5461: LIST
5462: ST_TO_ADDR
// hc_skills = [ SLevel , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
5463: LD_ADDR_OWVAR 31
5467: PUSH
5468: LD_VAR 0 4
5472: PUSH
5473: LD_INT 0
5475: PPUSH
5476: LD_INT 5
5478: PPUSH
5479: CALL_OW 12
5483: PUSH
5484: LD_INT 0
5486: PPUSH
5487: LD_INT 5
5489: PPUSH
5490: CALL_OW 12
5494: PUSH
5495: LD_INT 0
5497: PPUSH
5498: LD_INT 5
5500: PPUSH
5501: CALL_OW 12
5505: PUSH
5506: EMPTY
5507: LIST
5508: LIST
5509: LIST
5510: LIST
5511: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5512: LD_ADDR_OWVAR 27
5516: PUSH
5517: LD_INT 1
5519: PPUSH
5520: LD_INT 2
5522: PPUSH
5523: CALL_OW 12
5527: ST_TO_ADDR
// hc_class = 1 ;
5528: LD_ADDR_OWVAR 28
5532: PUSH
5533: LD_INT 1
5535: ST_TO_ADDR
// un := CreateHuman ;
5536: LD_ADDR_VAR 0 2
5540: PUSH
5541: CALL_OW 44
5545: ST_TO_ADDR
// PlaceUnitArea ( un , EnemyInfranty , false ) ;
5546: LD_VAR 0 2
5550: PPUSH
5551: LD_INT 10
5553: PPUSH
5554: LD_INT 0
5556: PPUSH
5557: CALL_OW 49
// l = l + 1 ;
5561: LD_ADDR_VAR 0 3
5565: PUSH
5566: LD_VAR 0 3
5570: PUSH
5571: LD_INT 1
5573: PLUS
5574: ST_TO_ADDR
// until l = SNum ;
5575: LD_VAR 0 3
5579: PUSH
5580: LD_VAR 0 5
5584: EQUAL
5585: IFFALSE 5400
// end ;
5587: LD_VAR 0 1
5591: RET
// export function BehindForces ; var un , veh , i , l , SLevel , MechLevel , SNum ; begin
5592: LD_INT 0
5594: PPUSH
5595: PPUSH
5596: PPUSH
5597: PPUSH
5598: PPUSH
5599: PPUSH
5600: PPUSH
5601: PPUSH
// SNum = [ 2 , 3 , 3 ] [ Difficulty ] ;
5602: LD_ADDR_VAR 0 8
5606: PUSH
5607: LD_INT 2
5609: PUSH
5610: LD_INT 3
5612: PUSH
5613: LD_INT 3
5615: PUSH
5616: EMPTY
5617: LIST
5618: LIST
5619: LIST
5620: PUSH
5621: LD_OWVAR 67
5625: ARRAY
5626: ST_TO_ADDR
// SLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
5627: LD_ADDR_VAR 0 6
5631: PUSH
5632: LD_INT 5
5634: PUSH
5635: LD_INT 6
5637: PUSH
5638: LD_INT 7
5640: PUSH
5641: EMPTY
5642: LIST
5643: LIST
5644: LIST
5645: PUSH
5646: LD_OWVAR 67
5650: ARRAY
5651: ST_TO_ADDR
// l = 0 ;
5652: LD_ADDR_VAR 0 5
5656: PUSH
5657: LD_INT 0
5659: ST_TO_ADDR
// repeat uc_side = 5 ;
5660: LD_ADDR_OWVAR 20
5664: PUSH
5665: LD_INT 5
5667: ST_TO_ADDR
// uc_nation = 3 ;
5668: LD_ADDR_OWVAR 21
5672: PUSH
5673: LD_INT 3
5675: ST_TO_ADDR
// hc_gallery =  ;
5676: LD_ADDR_OWVAR 33
5680: PUSH
5681: LD_STRING 
5683: ST_TO_ADDR
// hc_name =  ;
5684: LD_ADDR_OWVAR 26
5688: PUSH
5689: LD_STRING 
5691: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5692: LD_ADDR_OWVAR 29
5696: PUSH
5697: LD_INT 9
5699: PPUSH
5700: LD_INT 11
5702: PPUSH
5703: CALL_OW 12
5707: PUSH
5708: LD_INT 10
5710: PPUSH
5711: LD_INT 12
5713: PPUSH
5714: CALL_OW 12
5718: PUSH
5719: EMPTY
5720: LIST
5721: LIST
5722: ST_TO_ADDR
// hc_skills = [ SLevel , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
5723: LD_ADDR_OWVAR 31
5727: PUSH
5728: LD_VAR 0 6
5732: PUSH
5733: LD_INT 0
5735: PPUSH
5736: LD_INT 5
5738: PPUSH
5739: CALL_OW 12
5743: PUSH
5744: LD_INT 0
5746: PPUSH
5747: LD_INT 5
5749: PPUSH
5750: CALL_OW 12
5754: PUSH
5755: LD_INT 0
5757: PPUSH
5758: LD_INT 5
5760: PPUSH
5761: CALL_OW 12
5765: PUSH
5766: EMPTY
5767: LIST
5768: LIST
5769: LIST
5770: LIST
5771: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5772: LD_ADDR_OWVAR 27
5776: PUSH
5777: LD_INT 1
5779: PPUSH
5780: LD_INT 2
5782: PPUSH
5783: CALL_OW 12
5787: ST_TO_ADDR
// hc_class = 1 ;
5788: LD_ADDR_OWVAR 28
5792: PUSH
5793: LD_INT 1
5795: ST_TO_ADDR
// un := CreateHuman ;
5796: LD_ADDR_VAR 0 2
5800: PUSH
5801: CALL_OW 44
5805: ST_TO_ADDR
// PlaceUnitArea ( un , AttackBehind , false ) ;
5806: LD_VAR 0 2
5810: PPUSH
5811: LD_INT 9
5813: PPUSH
5814: LD_INT 0
5816: PPUSH
5817: CALL_OW 49
// l = l + 1 ;
5821: LD_ADDR_VAR 0 5
5825: PUSH
5826: LD_VAR 0 5
5830: PUSH
5831: LD_INT 1
5833: PLUS
5834: ST_TO_ADDR
// until l = SNum ;
5835: LD_VAR 0 5
5839: PUSH
5840: LD_VAR 0 8
5844: EQUAL
5845: IFFALSE 5660
// l = 0 ;
5847: LD_ADDR_VAR 0 5
5851: PUSH
5852: LD_INT 0
5854: ST_TO_ADDR
// repeat uc_side = 5 ;
5855: LD_ADDR_OWVAR 20
5859: PUSH
5860: LD_INT 5
5862: ST_TO_ADDR
// uc_nation = 3 ;
5863: LD_ADDR_OWVAR 21
5867: PUSH
5868: LD_INT 3
5870: ST_TO_ADDR
// if Difficulty = 1 then
5871: LD_OWVAR 67
5875: PUSH
5876: LD_INT 1
5878: EQUAL
5879: IFFALSE 5891
// begin vc_chassis = ru_medium_wheeled ;
5881: LD_ADDR_OWVAR 37
5885: PUSH
5886: LD_INT 21
5888: ST_TO_ADDR
// end else
5889: GO 5929
// if Difficulty = 2 then
5891: LD_OWVAR 67
5895: PUSH
5896: LD_INT 2
5898: EQUAL
5899: IFFALSE 5911
// begin vc_chassis = ru_medium_tracked ;
5901: LD_ADDR_OWVAR 37
5905: PUSH
5906: LD_INT 22
5908: ST_TO_ADDR
// end else
5909: GO 5929
// if Difficulty = 3 then
5911: LD_OWVAR 67
5915: PUSH
5916: LD_INT 3
5918: EQUAL
5919: IFFALSE 5929
// begin vc_chassis = ru_heavy_wheeled ;
5921: LD_ADDR_OWVAR 37
5925: PUSH
5926: LD_INT 23
5928: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
5929: LD_ADDR_OWVAR 39
5933: PUSH
5934: LD_INT 1
5936: ST_TO_ADDR
// vc_control = control_computer ;
5937: LD_ADDR_OWVAR 38
5941: PUSH
5942: LD_INT 3
5944: ST_TO_ADDR
// if l = 0 then
5945: LD_VAR 0 5
5949: PUSH
5950: LD_INT 0
5952: EQUAL
5953: IFFALSE 6015
// begin if Difficulty = 1 then
5955: LD_OWVAR 67
5959: PUSH
5960: LD_INT 1
5962: EQUAL
5963: IFFALSE 5975
// begin vc_weapon = ru_gun ;
5965: LD_ADDR_OWVAR 40
5969: PUSH
5970: LD_INT 44
5972: ST_TO_ADDR
// end else
5973: GO 6013
// if Difficulty = 2 then
5975: LD_OWVAR 67
5979: PUSH
5980: LD_INT 2
5982: EQUAL
5983: IFFALSE 5995
// begin vc_weapon = ru_gun ;
5985: LD_ADDR_OWVAR 40
5989: PUSH
5990: LD_INT 44
5992: ST_TO_ADDR
// end else
5993: GO 6013
// if Difficulty = 3 then
5995: LD_OWVAR 67
5999: PUSH
6000: LD_INT 3
6002: EQUAL
6003: IFFALSE 6013
// begin vc_weapon = ru_heavy_gun ;
6005: LD_ADDR_OWVAR 40
6009: PUSH
6010: LD_INT 46
6012: ST_TO_ADDR
// end ; end else
6013: GO 6083
// if l = 1 then
6015: LD_VAR 0 5
6019: PUSH
6020: LD_INT 1
6022: EQUAL
6023: IFFALSE 6083
// begin if Difficulty = 1 then
6025: LD_OWVAR 67
6029: PUSH
6030: LD_INT 1
6032: EQUAL
6033: IFFALSE 6045
// begin vc_weapon = ru_heavy_machine_gun ;
6035: LD_ADDR_OWVAR 40
6039: PUSH
6040: LD_INT 42
6042: ST_TO_ADDR
// end else
6043: GO 6083
// if Difficulty = 2 then
6045: LD_OWVAR 67
6049: PUSH
6050: LD_INT 2
6052: EQUAL
6053: IFFALSE 6065
// begin vc_weapon = Ru_gatling_gun ;
6055: LD_ADDR_OWVAR 40
6059: PUSH
6060: LD_INT 43
6062: ST_TO_ADDR
// end else
6063: GO 6083
// if Difficulty = 3 then
6065: LD_OWVAR 67
6069: PUSH
6070: LD_INT 3
6072: EQUAL
6073: IFFALSE 6083
// begin vc_weapon = Ru_gun ;
6075: LD_ADDR_OWVAR 40
6079: PUSH
6080: LD_INT 44
6082: ST_TO_ADDR
// end ; end ; veh = CreateVehicle ;
6083: LD_ADDR_VAR 0 3
6087: PUSH
6088: CALL_OW 45
6092: ST_TO_ADDR
// PlaceUnitArea ( veh , AttackBehind , false ) ;
6093: LD_VAR 0 3
6097: PPUSH
6098: LD_INT 9
6100: PPUSH
6101: LD_INT 0
6103: PPUSH
6104: CALL_OW 49
// l = l + 1 ;
6108: LD_ADDR_VAR 0 5
6112: PUSH
6113: LD_VAR 0 5
6117: PUSH
6118: LD_INT 1
6120: PLUS
6121: ST_TO_ADDR
// until l = 2 ;
6122: LD_VAR 0 5
6126: PUSH
6127: LD_INT 2
6129: EQUAL
6130: IFFALSE 5855
// end ;
6132: LD_VAR 0 1
6136: RET
// every 0 0$02 do var i , Defender , Attacker ;
6137: GO 6139
6139: DISABLE
6140: LD_INT 0
6142: PPUSH
6143: PPUSH
6144: PPUSH
// begin enable ;
6145: ENABLE
// Defender = FilterAllUnits ( [ f_side , 4 ] ) ;
6146: LD_ADDR_VAR 0 2
6150: PUSH
6151: LD_INT 22
6153: PUSH
6154: LD_INT 4
6156: PUSH
6157: EMPTY
6158: LIST
6159: LIST
6160: PPUSH
6161: CALL_OW 69
6165: ST_TO_ADDR
// Attacker = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ^ FilterAllUnits ( [ [ f_side , 5 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ^ FilterAllUnits ( [ [ f_side , 5 ] , [ f_type , unit_human ] ] ) ^ FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) ;
6166: LD_ADDR_VAR 0 3
6170: PUSH
6171: LD_INT 22
6173: PUSH
6174: LD_INT 3
6176: PUSH
6177: EMPTY
6178: LIST
6179: LIST
6180: PUSH
6181: LD_INT 21
6183: PUSH
6184: LD_INT 2
6186: PUSH
6187: EMPTY
6188: LIST
6189: LIST
6190: PUSH
6191: LD_INT 33
6193: PUSH
6194: LD_INT 1
6196: PUSH
6197: EMPTY
6198: LIST
6199: LIST
6200: PUSH
6201: EMPTY
6202: LIST
6203: LIST
6204: LIST
6205: PPUSH
6206: CALL_OW 69
6210: PUSH
6211: LD_INT 22
6213: PUSH
6214: LD_INT 3
6216: PUSH
6217: EMPTY
6218: LIST
6219: LIST
6220: PUSH
6221: LD_INT 21
6223: PUSH
6224: LD_INT 2
6226: PUSH
6227: EMPTY
6228: LIST
6229: LIST
6230: PUSH
6231: LD_INT 33
6233: PUSH
6234: LD_INT 3
6236: PUSH
6237: EMPTY
6238: LIST
6239: LIST
6240: PUSH
6241: EMPTY
6242: LIST
6243: LIST
6244: LIST
6245: PPUSH
6246: CALL_OW 69
6250: ADD
6251: PUSH
6252: LD_INT 22
6254: PUSH
6255: LD_INT 5
6257: PUSH
6258: EMPTY
6259: LIST
6260: LIST
6261: PUSH
6262: LD_INT 21
6264: PUSH
6265: LD_INT 2
6267: PUSH
6268: EMPTY
6269: LIST
6270: LIST
6271: PUSH
6272: LD_INT 33
6274: PUSH
6275: LD_INT 3
6277: PUSH
6278: EMPTY
6279: LIST
6280: LIST
6281: PUSH
6282: EMPTY
6283: LIST
6284: LIST
6285: LIST
6286: PPUSH
6287: CALL_OW 69
6291: ADD
6292: PUSH
6293: LD_INT 22
6295: PUSH
6296: LD_INT 5
6298: PUSH
6299: EMPTY
6300: LIST
6301: LIST
6302: PUSH
6303: LD_INT 21
6305: PUSH
6306: LD_INT 1
6308: PUSH
6309: EMPTY
6310: LIST
6311: LIST
6312: PUSH
6313: EMPTY
6314: LIST
6315: LIST
6316: PPUSH
6317: CALL_OW 69
6321: ADD
6322: PUSH
6323: LD_INT 22
6325: PUSH
6326: LD_INT 6
6328: PUSH
6329: EMPTY
6330: LIST
6331: LIST
6332: PUSH
6333: LD_INT 21
6335: PUSH
6336: LD_INT 1
6338: PUSH
6339: EMPTY
6340: LIST
6341: LIST
6342: PUSH
6343: EMPTY
6344: LIST
6345: LIST
6346: PPUSH
6347: CALL_OW 69
6351: ADD
6352: ST_TO_ADDR
// for i in Attacker do
6353: LD_ADDR_VAR 0 1
6357: PUSH
6358: LD_VAR 0 3
6362: PUSH
6363: FOR_IN
6364: IFFALSE 6413
// begin ComAgressiveMove ( i , GetX ( Defender [ 1 ] ) + 2 , GetY ( Defender [ 1 ] ) + 2 ) ;
6366: LD_VAR 0 1
6370: PPUSH
6371: LD_VAR 0 2
6375: PUSH
6376: LD_INT 1
6378: ARRAY
6379: PPUSH
6380: CALL_OW 250
6384: PUSH
6385: LD_INT 2
6387: PLUS
6388: PPUSH
6389: LD_VAR 0 2
6393: PUSH
6394: LD_INT 1
6396: ARRAY
6397: PPUSH
6398: CALL_OW 251
6402: PUSH
6403: LD_INT 2
6405: PLUS
6406: PPUSH
6407: CALL_OW 114
// end ;
6411: GO 6363
6413: POP
6414: POP
// end ;
6415: PPOPN 3
6417: END
// export function ProductionVehicles ; begin
6418: LD_INT 0
6420: PPUSH
// case Difficulty of 1 :
6421: LD_OWVAR 67
6425: PUSH
6426: LD_INT 1
6428: DOUBLE
6429: EQUAL
6430: IFTRUE 6434
6432: GO 6524
6434: POP
// begin AddComConstruct ( factoryRU1 , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
6435: LD_INT 88
6437: PPUSH
6438: LD_INT 21
6440: PPUSH
6441: LD_INT 1
6443: PPUSH
6444: LD_INT 1
6446: PPUSH
6447: LD_INT 42
6449: PPUSH
6450: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_wheeled , engine_combustion , control_computer , ru_gun ) ;
6454: LD_INT 8
6456: PPUSH
6457: LD_INT 21
6459: PPUSH
6460: LD_INT 1
6462: PPUSH
6463: LD_INT 3
6465: PPUSH
6466: LD_INT 44
6468: PPUSH
6469: CALL_OW 185
// AddComConstruct ( factoryRU3 , ru_medium_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
6473: LD_INT 122
6475: PPUSH
6476: LD_INT 22
6478: PPUSH
6479: LD_INT 1
6481: PPUSH
6482: LD_INT 3
6484: PPUSH
6485: LD_INT 43
6487: PPUSH
6488: CALL_OW 185
// AddComConstruct ( factoryRU4 , ru_medium_wheeled , engine_combustion , control_computer , ru_gun ) ;
6492: LD_INT 195
6494: PPUSH
6495: LD_INT 21
6497: PPUSH
6498: LD_INT 1
6500: PPUSH
6501: LD_INT 3
6503: PPUSH
6504: LD_INT 44
6506: PPUSH
6507: CALL_OW 185
// wait ( 0 0$15 ) ;
6511: LD_INT 525
6513: PPUSH
6514: CALL_OW 67
// SoldiersAttack ;
6518: CALL 5335 0 0
// end ; 2 :
6522: GO 6721
6524: LD_INT 2
6526: DOUBLE
6527: EQUAL
6528: IFTRUE 6532
6530: GO 6622
6532: POP
// begin AddComConstruct ( factoryRU1 , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
6533: LD_INT 88
6535: PPUSH
6536: LD_INT 21
6538: PPUSH
6539: LD_INT 1
6541: PPUSH
6542: LD_INT 1
6544: PPUSH
6545: LD_INT 42
6547: PPUSH
6548: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
6552: LD_INT 8
6554: PPUSH
6555: LD_INT 22
6557: PPUSH
6558: LD_INT 1
6560: PPUSH
6561: LD_INT 3
6563: PPUSH
6564: LD_INT 44
6566: PPUSH
6567: CALL_OW 185
// AddComConstruct ( factoryRU3 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
6571: LD_INT 122
6573: PPUSH
6574: LD_INT 24
6576: PPUSH
6577: LD_INT 1
6579: PPUSH
6580: LD_INT 3
6582: PPUSH
6583: LD_INT 43
6585: PPUSH
6586: CALL_OW 185
// AddComConstruct ( factoryRU4 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_gun ) ;
6590: LD_INT 195
6592: PPUSH
6593: LD_INT 23
6595: PPUSH
6596: LD_INT 1
6598: PPUSH
6599: LD_INT 3
6601: PPUSH
6602: LD_INT 46
6604: PPUSH
6605: CALL_OW 185
// wait ( 0 0$15 ) ;
6609: LD_INT 525
6611: PPUSH
6612: CALL_OW 67
// SoldiersAttack ;
6616: CALL 5335 0 0
// end ; 3 :
6620: GO 6721
6622: LD_INT 3
6624: DOUBLE
6625: EQUAL
6626: IFTRUE 6630
6628: GO 6720
6630: POP
// begin ComConstruct ( factoryRU1 , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
6631: LD_INT 88
6633: PPUSH
6634: LD_INT 21
6636: PPUSH
6637: LD_INT 1
6639: PPUSH
6640: LD_INT 1
6642: PPUSH
6643: LD_INT 42
6645: PPUSH
6646: CALL_OW 125
// ComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_gun ) ;
6650: LD_INT 8
6652: PPUSH
6653: LD_INT 23
6655: PPUSH
6656: LD_INT 1
6658: PPUSH
6659: LD_INT 3
6661: PPUSH
6662: LD_INT 46
6664: PPUSH
6665: CALL_OW 125
// ComConstruct ( factoryRU3 , ru_heavy_tracked , engine_combustion , control_computer , ru_rocket_launcher ) ;
6669: LD_INT 122
6671: PPUSH
6672: LD_INT 24
6674: PPUSH
6675: LD_INT 1
6677: PPUSH
6678: LD_INT 3
6680: PPUSH
6681: LD_INT 45
6683: PPUSH
6684: CALL_OW 125
// ComConstruct ( factoryRU4 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_gun ) ;
6688: LD_INT 195
6690: PPUSH
6691: LD_INT 23
6693: PPUSH
6694: LD_INT 1
6696: PPUSH
6697: LD_INT 3
6699: PPUSH
6700: LD_INT 46
6702: PPUSH
6703: CALL_OW 125
// wait ( 0 0$15 ) ;
6707: LD_INT 525
6709: PPUSH
6710: CALL_OW 67
// SoldiersAttack ;
6714: CALL 5335 0 0
// end ; end ;
6718: GO 6721
6720: POP
// end ; end_of_file
6721: LD_VAR 0 1
6725: RET
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
6726: GO 6728
6728: DISABLE
6729: LD_INT 0
6731: PPUSH
6732: PPUSH
6733: PPUSH
6734: PPUSH
// begin enable ;
6735: ENABLE
// EnginerList := UnitsInside ( depotRU1 ) ;
6736: LD_ADDR_VAR 0 1
6740: PUSH
6741: LD_INT 238
6743: PPUSH
6744: CALL_OW 313
6748: ST_TO_ADDR
// buildings := FilterUnitsInArea ( base1 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6749: LD_ADDR_VAR 0 3
6753: PUSH
6754: LD_INT 4
6756: PPUSH
6757: LD_INT 22
6759: PUSH
6760: LD_INT 3
6762: PUSH
6763: EMPTY
6764: LIST
6765: LIST
6766: PUSH
6767: LD_INT 21
6769: PUSH
6770: LD_INT 3
6772: PUSH
6773: EMPTY
6774: LIST
6775: LIST
6776: PUSH
6777: LD_INT 3
6779: PUSH
6780: LD_INT 24
6782: PUSH
6783: LD_INT 1000
6785: PUSH
6786: EMPTY
6787: LIST
6788: LIST
6789: PUSH
6790: EMPTY
6791: LIST
6792: LIST
6793: PUSH
6794: EMPTY
6795: LIST
6796: LIST
6797: LIST
6798: PUSH
6799: EMPTY
6800: LIST
6801: PPUSH
6802: CALL_OW 70
6806: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase1 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
6807: LD_ADDR_VAR 0 2
6811: PUSH
6812: LD_INT 12
6814: PPUSH
6815: LD_INT 22
6817: PUSH
6818: LD_INT 3
6820: PUSH
6821: EMPTY
6822: LIST
6823: LIST
6824: PUSH
6825: LD_INT 25
6827: PUSH
6828: LD_INT 2
6830: PUSH
6831: EMPTY
6832: LIST
6833: LIST
6834: PUSH
6835: EMPTY
6836: LIST
6837: LIST
6838: PUSH
6839: EMPTY
6840: LIST
6841: PPUSH
6842: CALL_OW 70
6846: ST_TO_ADDR
// if buildings > 0 then
6847: LD_VAR 0 3
6851: PUSH
6852: LD_INT 0
6854: GREATER
6855: IFFALSE 7038
// begin repeat buildings := FilterUnitsInArea ( base1 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
6857: LD_ADDR_VAR 0 3
6861: PUSH
6862: LD_INT 4
6864: PPUSH
6865: LD_INT 22
6867: PUSH
6868: LD_INT 3
6870: PUSH
6871: EMPTY
6872: LIST
6873: LIST
6874: PUSH
6875: LD_INT 21
6877: PUSH
6878: LD_INT 3
6880: PUSH
6881: EMPTY
6882: LIST
6883: LIST
6884: PUSH
6885: LD_INT 3
6887: PUSH
6888: LD_INT 24
6890: PUSH
6891: LD_INT 1000
6893: PUSH
6894: EMPTY
6895: LIST
6896: LIST
6897: PUSH
6898: EMPTY
6899: LIST
6900: LIST
6901: PUSH
6902: EMPTY
6903: LIST
6904: LIST
6905: LIST
6906: PUSH
6907: EMPTY
6908: LIST
6909: PPUSH
6910: CALL_OW 70
6914: ST_TO_ADDR
// for i = 1 to EnginerList do
6915: LD_ADDR_VAR 0 4
6919: PUSH
6920: DOUBLE
6921: LD_INT 1
6923: DEC
6924: ST_TO_ADDR
6925: LD_VAR 0 1
6929: PUSH
6930: FOR_TO
6931: IFFALSE 7017
// begin if IsInUnit ( EnginerList [ i ] ) then
6933: LD_VAR 0 1
6937: PUSH
6938: LD_VAR 0 4
6942: ARRAY
6943: PPUSH
6944: CALL_OW 310
6948: IFFALSE 6991
// begin ComExitBuilding ( EnginerList [ i ] ) ;
6950: LD_VAR 0 1
6954: PUSH
6955: LD_VAR 0 4
6959: ARRAY
6960: PPUSH
6961: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
6965: LD_VAR 0 1
6969: PUSH
6970: LD_VAR 0 4
6974: ARRAY
6975: PPUSH
6976: LD_VAR 0 3
6980: PUSH
6981: LD_INT 1
6983: ARRAY
6984: PPUSH
6985: CALL_OW 190
// end else
6989: GO 7015
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
6991: LD_VAR 0 1
6995: PUSH
6996: LD_VAR 0 4
7000: ARRAY
7001: PPUSH
7002: LD_VAR 0 3
7006: PUSH
7007: LD_INT 1
7009: ARRAY
7010: PPUSH
7011: CALL_OW 190
// end ;
7015: GO 6930
7017: POP
7018: POP
// wait ( 0 0$01 ) ;
7019: LD_INT 35
7021: PPUSH
7022: CALL_OW 67
// until buildings = 0 end else
7026: LD_VAR 0 3
7030: PUSH
7031: LD_INT 0
7033: EQUAL
7034: IFFALSE 6857
7036: GO 7088
// if buildings = 0 then
7038: LD_VAR 0 3
7042: PUSH
7043: LD_INT 0
7045: EQUAL
7046: IFFALSE 7088
// begin for i = 1 to EnginerListOutside do
7048: LD_ADDR_VAR 0 4
7052: PUSH
7053: DOUBLE
7054: LD_INT 1
7056: DEC
7057: ST_TO_ADDR
7058: LD_VAR 0 2
7062: PUSH
7063: FOR_TO
7064: IFFALSE 7086
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU1 ) ;
7066: LD_VAR 0 2
7070: PUSH
7071: LD_VAR 0 4
7075: ARRAY
7076: PPUSH
7077: LD_INT 238
7079: PPUSH
7080: CALL_OW 120
// end ;
7084: GO 7063
7086: POP
7087: POP
// end ; end ;
7088: PPOPN 4
7090: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
7091: GO 7093
7093: DISABLE
7094: LD_INT 0
7096: PPUSH
7097: PPUSH
7098: PPUSH
7099: PPUSH
// begin enable ;
7100: ENABLE
// EnginerList := UnitsInside ( depotRU2 ) ;
7101: LD_ADDR_VAR 0 1
7105: PUSH
7106: LD_INT 2
7108: PPUSH
7109: CALL_OW 313
7113: ST_TO_ADDR
// buildings := FilterUnitsInArea ( base2 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7114: LD_ADDR_VAR 0 3
7118: PUSH
7119: LD_INT 5
7121: PPUSH
7122: LD_INT 22
7124: PUSH
7125: LD_INT 3
7127: PUSH
7128: EMPTY
7129: LIST
7130: LIST
7131: PUSH
7132: LD_INT 21
7134: PUSH
7135: LD_INT 3
7137: PUSH
7138: EMPTY
7139: LIST
7140: LIST
7141: PUSH
7142: LD_INT 3
7144: PUSH
7145: LD_INT 24
7147: PUSH
7148: LD_INT 1000
7150: PUSH
7151: EMPTY
7152: LIST
7153: LIST
7154: PUSH
7155: EMPTY
7156: LIST
7157: LIST
7158: PUSH
7159: EMPTY
7160: LIST
7161: LIST
7162: LIST
7163: PUSH
7164: EMPTY
7165: LIST
7166: PPUSH
7167: CALL_OW 70
7171: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase2 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
7172: LD_ADDR_VAR 0 2
7176: PUSH
7177: LD_INT 15
7179: PPUSH
7180: LD_INT 22
7182: PUSH
7183: LD_INT 3
7185: PUSH
7186: EMPTY
7187: LIST
7188: LIST
7189: PUSH
7190: LD_INT 25
7192: PUSH
7193: LD_INT 2
7195: PUSH
7196: EMPTY
7197: LIST
7198: LIST
7199: PUSH
7200: EMPTY
7201: LIST
7202: LIST
7203: PUSH
7204: EMPTY
7205: LIST
7206: PPUSH
7207: CALL_OW 70
7211: ST_TO_ADDR
// if buildings > 0 then
7212: LD_VAR 0 3
7216: PUSH
7217: LD_INT 0
7219: GREATER
7220: IFFALSE 7403
// begin repeat buildings := FilterUnitsInArea ( base2 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7222: LD_ADDR_VAR 0 3
7226: PUSH
7227: LD_INT 5
7229: PPUSH
7230: LD_INT 22
7232: PUSH
7233: LD_INT 3
7235: PUSH
7236: EMPTY
7237: LIST
7238: LIST
7239: PUSH
7240: LD_INT 21
7242: PUSH
7243: LD_INT 3
7245: PUSH
7246: EMPTY
7247: LIST
7248: LIST
7249: PUSH
7250: LD_INT 3
7252: PUSH
7253: LD_INT 24
7255: PUSH
7256: LD_INT 1000
7258: PUSH
7259: EMPTY
7260: LIST
7261: LIST
7262: PUSH
7263: EMPTY
7264: LIST
7265: LIST
7266: PUSH
7267: EMPTY
7268: LIST
7269: LIST
7270: LIST
7271: PUSH
7272: EMPTY
7273: LIST
7274: PPUSH
7275: CALL_OW 70
7279: ST_TO_ADDR
// for i = 1 to EnginerList do
7280: LD_ADDR_VAR 0 4
7284: PUSH
7285: DOUBLE
7286: LD_INT 1
7288: DEC
7289: ST_TO_ADDR
7290: LD_VAR 0 1
7294: PUSH
7295: FOR_TO
7296: IFFALSE 7382
// begin if IsInUnit ( EnginerList [ i ] ) then
7298: LD_VAR 0 1
7302: PUSH
7303: LD_VAR 0 4
7307: ARRAY
7308: PPUSH
7309: CALL_OW 310
7313: IFFALSE 7356
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7315: LD_VAR 0 1
7319: PUSH
7320: LD_VAR 0 4
7324: ARRAY
7325: PPUSH
7326: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
7330: LD_VAR 0 1
7334: PUSH
7335: LD_VAR 0 4
7339: ARRAY
7340: PPUSH
7341: LD_VAR 0 3
7345: PUSH
7346: LD_INT 1
7348: ARRAY
7349: PPUSH
7350: CALL_OW 190
// end else
7354: GO 7380
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
7356: LD_VAR 0 1
7360: PUSH
7361: LD_VAR 0 4
7365: ARRAY
7366: PPUSH
7367: LD_VAR 0 3
7371: PUSH
7372: LD_INT 1
7374: ARRAY
7375: PPUSH
7376: CALL_OW 190
// end ;
7380: GO 7295
7382: POP
7383: POP
// wait ( 0 0$01 ) ;
7384: LD_INT 35
7386: PPUSH
7387: CALL_OW 67
// until buildings = 0 end else
7391: LD_VAR 0 3
7395: PUSH
7396: LD_INT 0
7398: EQUAL
7399: IFFALSE 7222
7401: GO 7453
// if buildings = 0 then
7403: LD_VAR 0 3
7407: PUSH
7408: LD_INT 0
7410: EQUAL
7411: IFFALSE 7453
// begin for i = 1 to EnginerListOutside do
7413: LD_ADDR_VAR 0 4
7417: PUSH
7418: DOUBLE
7419: LD_INT 1
7421: DEC
7422: ST_TO_ADDR
7423: LD_VAR 0 2
7427: PUSH
7428: FOR_TO
7429: IFFALSE 7451
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU2 ) ;
7431: LD_VAR 0 2
7435: PUSH
7436: LD_VAR 0 4
7440: ARRAY
7441: PPUSH
7442: LD_INT 2
7444: PPUSH
7445: CALL_OW 120
// end ;
7449: GO 7428
7451: POP
7452: POP
// end ; end ;
7453: PPOPN 4
7455: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
7456: GO 7458
7458: DISABLE
7459: LD_INT 0
7461: PPUSH
7462: PPUSH
7463: PPUSH
7464: PPUSH
// begin enable ;
7465: ENABLE
// EnginerList := UnitsInside ( depotRU3 ) ;
7466: LD_ADDR_VAR 0 1
7470: PUSH
7471: LD_INT 138
7473: PPUSH
7474: CALL_OW 313
7478: ST_TO_ADDR
// buildings := FilterUnitsInArea ( base3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7479: LD_ADDR_VAR 0 3
7483: PUSH
7484: LD_INT 2
7486: PPUSH
7487: LD_INT 22
7489: PUSH
7490: LD_INT 3
7492: PUSH
7493: EMPTY
7494: LIST
7495: LIST
7496: PUSH
7497: LD_INT 21
7499: PUSH
7500: LD_INT 3
7502: PUSH
7503: EMPTY
7504: LIST
7505: LIST
7506: PUSH
7507: LD_INT 3
7509: PUSH
7510: LD_INT 24
7512: PUSH
7513: LD_INT 1000
7515: PUSH
7516: EMPTY
7517: LIST
7518: LIST
7519: PUSH
7520: EMPTY
7521: LIST
7522: LIST
7523: PUSH
7524: EMPTY
7525: LIST
7526: LIST
7527: LIST
7528: PUSH
7529: EMPTY
7530: LIST
7531: PPUSH
7532: CALL_OW 70
7536: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase3 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
7537: LD_ADDR_VAR 0 2
7541: PUSH
7542: LD_INT 13
7544: PPUSH
7545: LD_INT 22
7547: PUSH
7548: LD_INT 3
7550: PUSH
7551: EMPTY
7552: LIST
7553: LIST
7554: PUSH
7555: LD_INT 25
7557: PUSH
7558: LD_INT 2
7560: PUSH
7561: EMPTY
7562: LIST
7563: LIST
7564: PUSH
7565: EMPTY
7566: LIST
7567: LIST
7568: PUSH
7569: EMPTY
7570: LIST
7571: PPUSH
7572: CALL_OW 70
7576: ST_TO_ADDR
// if buildings > 0 then
7577: LD_VAR 0 3
7581: PUSH
7582: LD_INT 0
7584: GREATER
7585: IFFALSE 7768
// begin repeat buildings := FilterUnitsInArea ( base3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7587: LD_ADDR_VAR 0 3
7591: PUSH
7592: LD_INT 2
7594: PPUSH
7595: LD_INT 22
7597: PUSH
7598: LD_INT 3
7600: PUSH
7601: EMPTY
7602: LIST
7603: LIST
7604: PUSH
7605: LD_INT 21
7607: PUSH
7608: LD_INT 3
7610: PUSH
7611: EMPTY
7612: LIST
7613: LIST
7614: PUSH
7615: LD_INT 3
7617: PUSH
7618: LD_INT 24
7620: PUSH
7621: LD_INT 1000
7623: PUSH
7624: EMPTY
7625: LIST
7626: LIST
7627: PUSH
7628: EMPTY
7629: LIST
7630: LIST
7631: PUSH
7632: EMPTY
7633: LIST
7634: LIST
7635: LIST
7636: PUSH
7637: EMPTY
7638: LIST
7639: PPUSH
7640: CALL_OW 70
7644: ST_TO_ADDR
// for i = 1 to EnginerList do
7645: LD_ADDR_VAR 0 4
7649: PUSH
7650: DOUBLE
7651: LD_INT 1
7653: DEC
7654: ST_TO_ADDR
7655: LD_VAR 0 1
7659: PUSH
7660: FOR_TO
7661: IFFALSE 7747
// begin if IsInUnit ( EnginerList [ i ] ) then
7663: LD_VAR 0 1
7667: PUSH
7668: LD_VAR 0 4
7672: ARRAY
7673: PPUSH
7674: CALL_OW 310
7678: IFFALSE 7721
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7680: LD_VAR 0 1
7684: PUSH
7685: LD_VAR 0 4
7689: ARRAY
7690: PPUSH
7691: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
7695: LD_VAR 0 1
7699: PUSH
7700: LD_VAR 0 4
7704: ARRAY
7705: PPUSH
7706: LD_VAR 0 3
7710: PUSH
7711: LD_INT 1
7713: ARRAY
7714: PPUSH
7715: CALL_OW 190
// end else
7719: GO 7745
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
7721: LD_VAR 0 1
7725: PUSH
7726: LD_VAR 0 4
7730: ARRAY
7731: PPUSH
7732: LD_VAR 0 3
7736: PUSH
7737: LD_INT 1
7739: ARRAY
7740: PPUSH
7741: CALL_OW 190
// end ;
7745: GO 7660
7747: POP
7748: POP
// wait ( 0 0$01 ) ;
7749: LD_INT 35
7751: PPUSH
7752: CALL_OW 67
// until buildings = 0 end else
7756: LD_VAR 0 3
7760: PUSH
7761: LD_INT 0
7763: EQUAL
7764: IFFALSE 7587
7766: GO 7818
// if buildings = 0 then
7768: LD_VAR 0 3
7772: PUSH
7773: LD_INT 0
7775: EQUAL
7776: IFFALSE 7818
// begin for i = 1 to EnginerListOutside do
7778: LD_ADDR_VAR 0 4
7782: PUSH
7783: DOUBLE
7784: LD_INT 1
7786: DEC
7787: ST_TO_ADDR
7788: LD_VAR 0 2
7792: PUSH
7793: FOR_TO
7794: IFFALSE 7816
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU3 ) ;
7796: LD_VAR 0 2
7800: PUSH
7801: LD_VAR 0 4
7805: ARRAY
7806: PPUSH
7807: LD_INT 138
7809: PPUSH
7810: CALL_OW 120
// end ;
7814: GO 7793
7816: POP
7817: POP
// end ; end ;
7818: PPOPN 4
7820: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
7821: GO 7823
7823: DISABLE
7824: LD_INT 0
7826: PPUSH
7827: PPUSH
7828: PPUSH
7829: PPUSH
// begin enable ;
7830: ENABLE
// EnginerList := UnitsInside ( depotRU4 ) ;
7831: LD_ADDR_VAR 0 1
7835: PUSH
7836: LD_INT 189
7838: PPUSH
7839: CALL_OW 313
7843: ST_TO_ADDR
// buildings := FilterUnitsInArea ( base4 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7844: LD_ADDR_VAR 0 3
7848: PUSH
7849: LD_INT 3
7851: PPUSH
7852: LD_INT 22
7854: PUSH
7855: LD_INT 3
7857: PUSH
7858: EMPTY
7859: LIST
7860: LIST
7861: PUSH
7862: LD_INT 21
7864: PUSH
7865: LD_INT 3
7867: PUSH
7868: EMPTY
7869: LIST
7870: LIST
7871: PUSH
7872: LD_INT 3
7874: PUSH
7875: LD_INT 24
7877: PUSH
7878: LD_INT 1000
7880: PUSH
7881: EMPTY
7882: LIST
7883: LIST
7884: PUSH
7885: EMPTY
7886: LIST
7887: LIST
7888: PUSH
7889: EMPTY
7890: LIST
7891: LIST
7892: LIST
7893: PUSH
7894: EMPTY
7895: LIST
7896: PPUSH
7897: CALL_OW 70
7901: ST_TO_ADDR
// EnginerListOutside := FilterUnitsInArea ( ReturnBase4 , [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
7902: LD_ADDR_VAR 0 2
7906: PUSH
7907: LD_INT 14
7909: PPUSH
7910: LD_INT 22
7912: PUSH
7913: LD_INT 3
7915: PUSH
7916: EMPTY
7917: LIST
7918: LIST
7919: PUSH
7920: LD_INT 25
7922: PUSH
7923: LD_INT 2
7925: PUSH
7926: EMPTY
7927: LIST
7928: LIST
7929: PUSH
7930: EMPTY
7931: LIST
7932: LIST
7933: PUSH
7934: EMPTY
7935: LIST
7936: PPUSH
7937: CALL_OW 70
7941: ST_TO_ADDR
// if buildings > 0 then
7942: LD_VAR 0 3
7946: PUSH
7947: LD_INT 0
7949: GREATER
7950: IFFALSE 8133
// begin repeat buildings := FilterUnitsInArea ( base4 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7952: LD_ADDR_VAR 0 3
7956: PUSH
7957: LD_INT 3
7959: PPUSH
7960: LD_INT 22
7962: PUSH
7963: LD_INT 3
7965: PUSH
7966: EMPTY
7967: LIST
7968: LIST
7969: PUSH
7970: LD_INT 21
7972: PUSH
7973: LD_INT 3
7975: PUSH
7976: EMPTY
7977: LIST
7978: LIST
7979: PUSH
7980: LD_INT 3
7982: PUSH
7983: LD_INT 24
7985: PUSH
7986: LD_INT 1000
7988: PUSH
7989: EMPTY
7990: LIST
7991: LIST
7992: PUSH
7993: EMPTY
7994: LIST
7995: LIST
7996: PUSH
7997: EMPTY
7998: LIST
7999: LIST
8000: LIST
8001: PUSH
8002: EMPTY
8003: LIST
8004: PPUSH
8005: CALL_OW 70
8009: ST_TO_ADDR
// for i = 1 to EnginerList do
8010: LD_ADDR_VAR 0 4
8014: PUSH
8015: DOUBLE
8016: LD_INT 1
8018: DEC
8019: ST_TO_ADDR
8020: LD_VAR 0 1
8024: PUSH
8025: FOR_TO
8026: IFFALSE 8112
// begin if IsInUnit ( EnginerList [ i ] ) then
8028: LD_VAR 0 1
8032: PUSH
8033: LD_VAR 0 4
8037: ARRAY
8038: PPUSH
8039: CALL_OW 310
8043: IFFALSE 8086
// begin ComExitBuilding ( EnginerList [ i ] ) ;
8045: LD_VAR 0 1
8049: PUSH
8050: LD_VAR 0 4
8054: ARRAY
8055: PPUSH
8056: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8060: LD_VAR 0 1
8064: PUSH
8065: LD_VAR 0 4
8069: ARRAY
8070: PPUSH
8071: LD_VAR 0 3
8075: PUSH
8076: LD_INT 1
8078: ARRAY
8079: PPUSH
8080: CALL_OW 190
// end else
8084: GO 8110
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8086: LD_VAR 0 1
8090: PUSH
8091: LD_VAR 0 4
8095: ARRAY
8096: PPUSH
8097: LD_VAR 0 3
8101: PUSH
8102: LD_INT 1
8104: ARRAY
8105: PPUSH
8106: CALL_OW 190
// end ;
8110: GO 8025
8112: POP
8113: POP
// wait ( 0 0$01 ) ;
8114: LD_INT 35
8116: PPUSH
8117: CALL_OW 67
// until buildings = 0 end else
8121: LD_VAR 0 3
8125: PUSH
8126: LD_INT 0
8128: EQUAL
8129: IFFALSE 7952
8131: GO 8183
// if buildings = 0 then
8133: LD_VAR 0 3
8137: PUSH
8138: LD_INT 0
8140: EQUAL
8141: IFFALSE 8183
// begin for i = 1 to EnginerListOutside do
8143: LD_ADDR_VAR 0 4
8147: PUSH
8148: DOUBLE
8149: LD_INT 1
8151: DEC
8152: ST_TO_ADDR
8153: LD_VAR 0 2
8157: PUSH
8158: FOR_TO
8159: IFFALSE 8181
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU4 ) ;
8161: LD_VAR 0 2
8165: PUSH
8166: LD_VAR 0 4
8170: ARRAY
8171: PPUSH
8172: LD_INT 189
8174: PPUSH
8175: CALL_OW 120
// end ;
8179: GO 8158
8181: POP
8182: POP
// end ; end ;
8183: PPOPN 4
8185: END
// every 0 0$02 do var EnginerList , EnginerListOutside , buildings , i ;
8186: GO 8188
8188: DISABLE
8189: LD_INT 0
8191: PPUSH
8192: PPUSH
8193: PPUSH
8194: PPUSH
// begin enable ;
8195: ENABLE
// EnginerList := UnitsInside ( depotUS1 ) ;
8196: LD_ADDR_VAR 0 1
8200: PUSH
8201: LD_INT 532
8203: PPUSH
8204: CALL_OW 313
8208: ST_TO_ADDR
// buildings := FilterUnitsInArea ( baseUS , [ [ [ f_side , 1 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
8209: LD_ADDR_VAR 0 3
8213: PUSH
8214: LD_INT 6
8216: PPUSH
8217: LD_INT 22
8219: PUSH
8220: LD_INT 1
8222: PUSH
8223: EMPTY
8224: LIST
8225: LIST
8226: PUSH
8227: LD_INT 21
8229: PUSH
8230: LD_INT 3
8232: PUSH
8233: EMPTY
8234: LIST
8235: LIST
8236: PUSH
8237: LD_INT 3
8239: PUSH
8240: LD_INT 24
8242: PUSH
8243: LD_INT 1000
8245: PUSH
8246: EMPTY
8247: LIST
8248: LIST
8249: PUSH
8250: EMPTY
8251: LIST
8252: LIST
8253: PUSH
8254: EMPTY
8255: LIST
8256: LIST
8257: LIST
8258: PUSH
8259: EMPTY
8260: LIST
8261: PPUSH
8262: CALL_OW 70
8266: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 1 ] , [ f_class , 2 ] ] ] ) ;
8267: LD_ADDR_VAR 0 2
8271: PUSH
8272: LD_INT 22
8274: PUSH
8275: LD_INT 1
8277: PUSH
8278: EMPTY
8279: LIST
8280: LIST
8281: PUSH
8282: LD_INT 25
8284: PUSH
8285: LD_INT 2
8287: PUSH
8288: EMPTY
8289: LIST
8290: LIST
8291: PUSH
8292: EMPTY
8293: LIST
8294: LIST
8295: PUSH
8296: EMPTY
8297: LIST
8298: PPUSH
8299: CALL_OW 69
8303: ST_TO_ADDR
// if buildings > 0 then
8304: LD_VAR 0 3
8308: PUSH
8309: LD_INT 0
8311: GREATER
8312: IFFALSE 8495
// begin repeat buildings := FilterUnitsInArea ( baseUS , [ [ [ f_side , 1 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
8314: LD_ADDR_VAR 0 3
8318: PUSH
8319: LD_INT 6
8321: PPUSH
8322: LD_INT 22
8324: PUSH
8325: LD_INT 1
8327: PUSH
8328: EMPTY
8329: LIST
8330: LIST
8331: PUSH
8332: LD_INT 21
8334: PUSH
8335: LD_INT 3
8337: PUSH
8338: EMPTY
8339: LIST
8340: LIST
8341: PUSH
8342: LD_INT 3
8344: PUSH
8345: LD_INT 24
8347: PUSH
8348: LD_INT 1000
8350: PUSH
8351: EMPTY
8352: LIST
8353: LIST
8354: PUSH
8355: EMPTY
8356: LIST
8357: LIST
8358: PUSH
8359: EMPTY
8360: LIST
8361: LIST
8362: LIST
8363: PUSH
8364: EMPTY
8365: LIST
8366: PPUSH
8367: CALL_OW 70
8371: ST_TO_ADDR
// for i = 1 to EnginerList do
8372: LD_ADDR_VAR 0 4
8376: PUSH
8377: DOUBLE
8378: LD_INT 1
8380: DEC
8381: ST_TO_ADDR
8382: LD_VAR 0 1
8386: PUSH
8387: FOR_TO
8388: IFFALSE 8474
// begin if IsInUnit ( EnginerList [ i ] ) then
8390: LD_VAR 0 1
8394: PUSH
8395: LD_VAR 0 4
8399: ARRAY
8400: PPUSH
8401: CALL_OW 310
8405: IFFALSE 8448
// begin ComExitBuilding ( EnginerList [ i ] ) ;
8407: LD_VAR 0 1
8411: PUSH
8412: LD_VAR 0 4
8416: ARRAY
8417: PPUSH
8418: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8422: LD_VAR 0 1
8426: PUSH
8427: LD_VAR 0 4
8431: ARRAY
8432: PPUSH
8433: LD_VAR 0 3
8437: PUSH
8438: LD_INT 1
8440: ARRAY
8441: PPUSH
8442: CALL_OW 190
// end else
8446: GO 8472
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8448: LD_VAR 0 1
8452: PUSH
8453: LD_VAR 0 4
8457: ARRAY
8458: PPUSH
8459: LD_VAR 0 3
8463: PUSH
8464: LD_INT 1
8466: ARRAY
8467: PPUSH
8468: CALL_OW 190
// end ;
8472: GO 8387
8474: POP
8475: POP
// wait ( 0 0$01 ) ;
8476: LD_INT 35
8478: PPUSH
8479: CALL_OW 67
// until buildings = 0 end else
8483: LD_VAR 0 3
8487: PUSH
8488: LD_INT 0
8490: EQUAL
8491: IFFALSE 8314
8493: GO 8545
// if buildings = 0 then
8495: LD_VAR 0 3
8499: PUSH
8500: LD_INT 0
8502: EQUAL
8503: IFFALSE 8545
// begin for i = 1 to EnginerListOutside do
8505: LD_ADDR_VAR 0 4
8509: PUSH
8510: DOUBLE
8511: LD_INT 1
8513: DEC
8514: ST_TO_ADDR
8515: LD_VAR 0 2
8519: PUSH
8520: FOR_TO
8521: IFFALSE 8543
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotUS1 ) ;
8523: LD_VAR 0 2
8527: PUSH
8528: LD_VAR 0 4
8532: ARRAY
8533: PPUSH
8534: LD_INT 532
8536: PPUSH
8537: CALL_OW 120
// end ;
8541: GO 8520
8543: POP
8544: POP
// end ; end ;
8545: PPOPN 4
8547: END
// every 0 0$01 do var i , atakujacy , broniacy , Mech ;
8548: GO 8550
8550: DISABLE
8551: LD_INT 0
8553: PPUSH
8554: PPUSH
8555: PPUSH
8556: PPUSH
// begin enable ;
8557: ENABLE
// atakujacy = FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , Control_remote ] ] ) ;
8558: LD_ADDR_VAR 0 2
8562: PUSH
8563: LD_INT 22
8565: PUSH
8566: LD_INT 1
8568: PUSH
8569: EMPTY
8570: LIST
8571: LIST
8572: PUSH
8573: LD_INT 21
8575: PUSH
8576: LD_INT 2
8578: PUSH
8579: EMPTY
8580: LIST
8581: LIST
8582: PUSH
8583: LD_INT 33
8585: PUSH
8586: LD_INT 2
8588: PUSH
8589: EMPTY
8590: LIST
8591: LIST
8592: PUSH
8593: EMPTY
8594: LIST
8595: LIST
8596: LIST
8597: PPUSH
8598: CALL_OW 69
8602: ST_TO_ADDR
// for i in atakujacy do
8603: LD_ADDR_VAR 0 1
8607: PUSH
8608: LD_VAR 0 2
8612: PUSH
8613: FOR_IN
8614: IFFALSE 8704
// begin broniacy = FilterUnitsInArea ( VehDefend , [ f_side , 2 ] ) ;
8616: LD_ADDR_VAR 0 3
8620: PUSH
8621: LD_INT 11
8623: PPUSH
8624: LD_INT 22
8626: PUSH
8627: LD_INT 2
8629: PUSH
8630: EMPTY
8631: LIST
8632: LIST
8633: PPUSH
8634: CALL_OW 70
8638: ST_TO_ADDR
// if broniacy >= 1 then
8639: LD_VAR 0 3
8643: PUSH
8644: LD_INT 1
8646: GREATEREQUAL
8647: IFFALSE 8687
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
8649: LD_VAR 0 1
8653: PPUSH
8654: LD_VAR 0 3
8658: PPUSH
8659: LD_VAR 0 1
8663: PPUSH
8664: CALL_OW 74
8668: PPUSH
8669: CALL_OW 115
// setFuel ( i , 100 ) ;
8673: LD_VAR 0 1
8677: PPUSH
8678: LD_INT 100
8680: PPUSH
8681: CALL_OW 240
// end else
8685: GO 8702
// begin ComMoveXY ( i , 90 , 129 ) ;
8687: LD_VAR 0 1
8691: PPUSH
8692: LD_INT 90
8694: PPUSH
8695: LD_INT 129
8697: PPUSH
8698: CALL_OW 111
// end ; end ;
8702: GO 8613
8704: POP
8705: POP
// end ; end_of_file
8706: PPOPN 4
8708: END
// export Nefarem , Characters ; every 0 0$01 do var tab , x3 , i1 , p1 , x1 , x2 , p2 , i2 , veh , filter , tabCargo , un , x , RuBaseBehind ;
8709: GO 8711
8711: DISABLE
8712: LD_INT 0
8714: PPUSH
8715: PPUSH
8716: PPUSH
8717: PPUSH
8718: PPUSH
8719: PPUSH
8720: PPUSH
8721: PPUSH
8722: PPUSH
8723: PPUSH
8724: PPUSH
8725: PPUSH
8726: PPUSH
8727: PPUSH
// begin RuBaseBehind := LoadVariable ( Attack_behind_08 , 0 ) ;
8728: LD_ADDR_VAR 0 14
8732: PUSH
8733: LD_STRING Attack_behind_08
8735: PPUSH
8736: LD_INT 0
8738: PPUSH
8739: CALL_OW 30
8743: ST_TO_ADDR
// if RuBaseBehind = 1 then
8744: LD_VAR 0 14
8748: PUSH
8749: LD_INT 1
8751: EQUAL
8752: IFFALSE 8764
// begin x = 1 ;
8754: LD_ADDR_VAR 0 13
8758: PUSH
8759: LD_INT 1
8761: ST_TO_ADDR
// end else
8762: GO 8782
// if RuBaseBehind = 2 then
8764: LD_VAR 0 14
8768: PUSH
8769: LD_INT 2
8771: EQUAL
8772: IFFALSE 8782
// begin x = 2 ;
8774: LD_ADDR_VAR 0 13
8778: PUSH
8779: LD_INT 2
8781: ST_TO_ADDR
// end ; uc_side := 4 ;
8782: LD_ADDR_OWVAR 20
8786: PUSH
8787: LD_INT 4
8789: ST_TO_ADDR
// tab := LoadVariable ( units_vehicles , [ ] ) ;
8790: LD_ADDR_VAR 0 1
8794: PUSH
8795: LD_STRING units_vehicles
8797: PPUSH
8798: EMPTY
8799: PPUSH
8800: CALL_OW 30
8804: ST_TO_ADDR
// tabCargo := LoadVariable ( units_cargo , [ ] ) ;
8805: LD_ADDR_VAR 0 11
8809: PUSH
8810: LD_STRING units_cargo
8812: PPUSH
8813: EMPTY
8814: PPUSH
8815: CALL_OW 30
8819: ST_TO_ADDR
// Characters = CreateCharacterSet ( CharacterSave ) ;
8820: LD_ADDR_EXP 4
8824: PUSH
8825: LD_STRING CharacterSave
8827: PPUSH
8828: CALL_OW 31
8832: ST_TO_ADDR
// x1 := 1 ;
8833: LD_ADDR_VAR 0 5
8837: PUSH
8838: LD_INT 1
8840: ST_TO_ADDR
// i1 := 1 ;
8841: LD_ADDR_VAR 0 3
8845: PUSH
8846: LD_INT 1
8848: ST_TO_ADDR
// p1 := 1 ;
8849: LD_ADDR_VAR 0 4
8853: PUSH
8854: LD_INT 1
8856: ST_TO_ADDR
// x2 := 1 ;
8857: LD_ADDR_VAR 0 6
8861: PUSH
8862: LD_INT 1
8864: ST_TO_ADDR
// i2 := 1 ;
8865: LD_ADDR_VAR 0 8
8869: PUSH
8870: LD_INT 1
8872: ST_TO_ADDR
// p2 := 1 ;
8873: LD_ADDR_VAR 0 7
8877: PUSH
8878: LD_INT 1
8880: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
8881: LD_ADDR_EXP 3
8885: PUSH
8886: LD_STRING Nefarem
8888: PPUSH
8889: CALL_OW 34
8893: ST_TO_ADDR
// PlaceUnitArea ( Nefarem , spawnHuman , false ) ;
8894: LD_EXP 3
8898: PPUSH
8899: LD_INT 8
8901: PPUSH
8902: LD_INT 0
8904: PPUSH
8905: CALL_OW 49
// for x3 in Characters do
8909: LD_ADDR_VAR 0 2
8913: PUSH
8914: LD_EXP 4
8918: PUSH
8919: FOR_IN
8920: IFFALSE 8939
// begin PlaceUnitArea ( x3 , spawnHuman , false ) ;
8922: LD_VAR 0 2
8926: PPUSH
8927: LD_INT 8
8929: PPUSH
8930: LD_INT 0
8932: PPUSH
8933: CALL_OW 49
// end ;
8937: GO 8919
8939: POP
8940: POP
// if tab > 0 then
8941: LD_VAR 0 1
8945: PUSH
8946: LD_INT 0
8948: GREATER
8949: IFFALSE 9108
// begin while ( i1 <= tab ) do
8951: LD_VAR 0 3
8955: PUSH
8956: LD_VAR 0 1
8960: LESSEQUAL
8961: IFFALSE 9108
// begin vc_chassis := tab [ i1 ] ;
8963: LD_ADDR_OWVAR 37
8967: PUSH
8968: LD_VAR 0 1
8972: PUSH
8973: LD_VAR 0 3
8977: ARRAY
8978: ST_TO_ADDR
// vc_engine := tab [ i1 + 1 ] ;
8979: LD_ADDR_OWVAR 39
8983: PUSH
8984: LD_VAR 0 1
8988: PUSH
8989: LD_VAR 0 3
8993: PUSH
8994: LD_INT 1
8996: PLUS
8997: ARRAY
8998: ST_TO_ADDR
// vc_control := tab [ i1 + 2 ] ;
8999: LD_ADDR_OWVAR 38
9003: PUSH
9004: LD_VAR 0 1
9008: PUSH
9009: LD_VAR 0 3
9013: PUSH
9014: LD_INT 2
9016: PLUS
9017: ARRAY
9018: ST_TO_ADDR
// vc_weapon := tab [ i1 + 3 ] ;
9019: LD_ADDR_OWVAR 40
9023: PUSH
9024: LD_VAR 0 1
9028: PUSH
9029: LD_VAR 0 3
9033: PUSH
9034: LD_INT 3
9036: PLUS
9037: ARRAY
9038: ST_TO_ADDR
// veh := CreateVehicle ;
9039: LD_ADDR_VAR 0 9
9043: PUSH
9044: CALL_OW 45
9048: ST_TO_ADDR
// PlaceUnitArea ( veh , spawnVeh , false ) ;
9049: LD_VAR 0 9
9053: PPUSH
9054: LD_INT 7
9056: PPUSH
9057: LD_INT 0
9059: PPUSH
9060: CALL_OW 49
// p1 := p1 + 1 ;
9064: LD_ADDR_VAR 0 4
9068: PUSH
9069: LD_VAR 0 4
9073: PUSH
9074: LD_INT 1
9076: PLUS
9077: ST_TO_ADDR
// i1 := i1 + 4 ;
9078: LD_ADDR_VAR 0 3
9082: PUSH
9083: LD_VAR 0 3
9087: PUSH
9088: LD_INT 4
9090: PLUS
9091: ST_TO_ADDR
// x1 := x1 + 1 ;
9092: LD_ADDR_VAR 0 5
9096: PUSH
9097: LD_VAR 0 5
9101: PUSH
9102: LD_INT 1
9104: PLUS
9105: ST_TO_ADDR
// end ;
9106: GO 8951
// end ; if tabCargo > 0 then
9108: LD_VAR 0 11
9112: PUSH
9113: LD_INT 0
9115: GREATER
9116: IFFALSE 9275
// begin while ( i2 <= tabCargo ) do
9118: LD_VAR 0 8
9122: PUSH
9123: LD_VAR 0 11
9127: LESSEQUAL
9128: IFFALSE 9275
// begin vc_chassis := tabCargo [ i2 ] ;
9130: LD_ADDR_OWVAR 37
9134: PUSH
9135: LD_VAR 0 11
9139: PUSH
9140: LD_VAR 0 8
9144: ARRAY
9145: ST_TO_ADDR
// vc_engine := tabCargo [ i2 + 1 ] ;
9146: LD_ADDR_OWVAR 39
9150: PUSH
9151: LD_VAR 0 11
9155: PUSH
9156: LD_VAR 0 8
9160: PUSH
9161: LD_INT 1
9163: PLUS
9164: ARRAY
9165: ST_TO_ADDR
// vc_control := tabCargo [ i2 + 2 ] ;
9166: LD_ADDR_OWVAR 38
9170: PUSH
9171: LD_VAR 0 11
9175: PUSH
9176: LD_VAR 0 8
9180: PUSH
9181: LD_INT 2
9183: PLUS
9184: ARRAY
9185: ST_TO_ADDR
// vc_weapon := tabCargo [ i2 + 3 ] ;
9186: LD_ADDR_OWVAR 40
9190: PUSH
9191: LD_VAR 0 11
9195: PUSH
9196: LD_VAR 0 8
9200: PUSH
9201: LD_INT 3
9203: PLUS
9204: ARRAY
9205: ST_TO_ADDR
// veh := CreateVehicle ;
9206: LD_ADDR_VAR 0 9
9210: PUSH
9211: CALL_OW 45
9215: ST_TO_ADDR
// PlaceUnitArea ( veh , spawnVeh , false ) ;
9216: LD_VAR 0 9
9220: PPUSH
9221: LD_INT 7
9223: PPUSH
9224: LD_INT 0
9226: PPUSH
9227: CALL_OW 49
// p2 := p2 + 1 ;
9231: LD_ADDR_VAR 0 7
9235: PUSH
9236: LD_VAR 0 7
9240: PUSH
9241: LD_INT 1
9243: PLUS
9244: ST_TO_ADDR
// i2 := i2 + 4 ;
9245: LD_ADDR_VAR 0 8
9249: PUSH
9250: LD_VAR 0 8
9254: PUSH
9255: LD_INT 4
9257: PLUS
9258: ST_TO_ADDR
// x2 := x2 + 1 ;
9259: LD_ADDR_VAR 0 6
9263: PUSH
9264: LD_VAR 0 6
9268: PUSH
9269: LD_INT 1
9271: PLUS
9272: ST_TO_ADDR
// end ;
9273: GO 9118
// end ; end ; end_of_file
9275: PPOPN 14
9277: END
// every 0 0$02 do
9278: GO 9280
9280: DISABLE
// begin enable ;
9281: ENABLE
// if IsDead ( Nefarem ) then
9282: LD_EXP 3
9286: PPUSH
9287: CALL_OW 301
9291: IFFALSE 9302
// begin YouLost ( Nef ) ;
9293: LD_STRING Nef
9295: PPUSH
9296: CALL_OW 104
// end else
9300: GO 9443
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_weapon , us_cargo_bay ] ] ) = 1 and Cargo = 1 then
9302: LD_INT 22
9304: PUSH
9305: LD_INT 4
9307: PUSH
9308: EMPTY
9309: LIST
9310: LIST
9311: PUSH
9312: LD_INT 21
9314: PUSH
9315: LD_INT 2
9317: PUSH
9318: EMPTY
9319: LIST
9320: LIST
9321: PUSH
9322: LD_INT 33
9324: PUSH
9325: LD_INT 3
9327: PUSH
9328: EMPTY
9329: LIST
9330: LIST
9331: PUSH
9332: LD_INT 34
9334: PUSH
9335: LD_INT 12
9337: PUSH
9338: EMPTY
9339: LIST
9340: LIST
9341: PUSH
9342: EMPTY
9343: LIST
9344: LIST
9345: LIST
9346: LIST
9347: PPUSH
9348: CALL_OW 69
9352: PUSH
9353: LD_INT 1
9355: EQUAL
9356: PUSH
9357: LD_EXP 1
9361: PUSH
9362: LD_INT 1
9364: EQUAL
9365: AND
9366: IFFALSE 9370
// begin end else
9368: GO 9443
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_weapon , us_cargo_bay ] ] ) < 2 and Cargo < 2 then
9370: LD_INT 22
9372: PUSH
9373: LD_INT 4
9375: PUSH
9376: EMPTY
9377: LIST
9378: LIST
9379: PUSH
9380: LD_INT 21
9382: PUSH
9383: LD_INT 2
9385: PUSH
9386: EMPTY
9387: LIST
9388: LIST
9389: PUSH
9390: LD_INT 33
9392: PUSH
9393: LD_INT 3
9395: PUSH
9396: EMPTY
9397: LIST
9398: LIST
9399: PUSH
9400: LD_INT 34
9402: PUSH
9403: LD_INT 12
9405: PUSH
9406: EMPTY
9407: LIST
9408: LIST
9409: PUSH
9410: EMPTY
9411: LIST
9412: LIST
9413: LIST
9414: LIST
9415: PPUSH
9416: CALL_OW 69
9420: PUSH
9421: LD_INT 2
9423: LESS
9424: PUSH
9425: LD_EXP 1
9429: PUSH
9430: LD_INT 2
9432: LESS
9433: AND
9434: IFFALSE 9443
// begin YouLost ( pojazdyded ) ;
9436: LD_STRING pojazdyded
9438: PPUSH
9439: CALL_OW 104
// end ; end ;
9443: END
